Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[linux-2.6-microblaze.git] / net / qrtr / qrtr.c
index 171b7f3..b8508e3 100644 (file)
@@ -493,7 +493,7 @@ int qrtr_endpoint_post(struct qrtr_endpoint *ep, const void *data, size_t len)
                goto err;
        }
 
-       if (len != ALIGN(size, 4) + hdrlen)
+       if (!size || len != ALIGN(size, 4) + hdrlen)
                goto err;
 
        if (cb->dst_port != QRTR_PORT_CTRL && cb->type != QRTR_TYPE_DATA &&
@@ -1157,14 +1157,14 @@ static int qrtr_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                rc = put_user(len, (int __user *)argp);
                break;
        case SIOCGIFADDR:
-               if (copy_from_user(&ifr, argp, sizeof(ifr))) {
+               if (get_user_ifreq(&ifr, NULL, argp)) {
                        rc = -EFAULT;
                        break;
                }
 
                sq = (struct sockaddr_qrtr *)&ifr.ifr_addr;
                *sq = ipc->us;
-               if (copy_to_user(argp, &ifr, sizeof(ifr))) {
+               if (put_user_ifreq(&ifr, argp)) {
                        rc = -EFAULT;
                        break;
                }