net: fix uninitialized variable issue
authortadeusz.struk@intel.com <tadeusz.struk@intel.com>
Tue, 15 Dec 2015 18:46:17 +0000 (10:46 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Dec 2015 20:46:48 +0000 (15:46 -0500)
msg_iocb needs to be initialized on the recv/recvfrom path.
Otherwise afalg will wrongly interpret it as an async call.

Cc: stable@vger.kernel.org
Reported-by: Harald Freudenberger <freude@linux.vnet.ibm.com>
Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/socket.c

index 456fadb3d8193a2238bf30881506cd66dbe11957..29822d6dd91ec3637cbca205de3c450d19ec5651 100644 (file)
@@ -1695,6 +1695,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
        msg.msg_name = addr ? (struct sockaddr *)&address : NULL;
        /* We assume all kernel code knows the size of sockaddr_storage */
        msg.msg_namelen = 0;
+       msg.msg_iocb = NULL;
        if (sock->file->f_flags & O_NONBLOCK)
                flags |= MSG_DONTWAIT;
        err = sock_recvmsg(sock, &msg, iov_iter_count(&msg.msg_iter), flags);