[NET]: Do not leak MSG_CMSG_COMPAT into userspace.
authorDavid S. Miller <davem@davemloft.net>
Fri, 16 Sep 2005 23:51:01 +0000 (16:51 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 16 Sep 2005 23:51:01 +0000 (16:51 -0700)
Noticed by Sridhar Samudrala.

Signed-off-by: David S. Miller <davem@davemloft.net>
net/socket.c

index c699e93c33d72141332fdfa0c16afa87ed4a971e..f9264472377f563976060325a76cab8ec96da7ce 100644 (file)
@@ -1862,7 +1862,8 @@ asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg, unsigned int flag
                if (err < 0)
                        goto out_freeiov;
        }
-       err = __put_user(msg_sys.msg_flags, COMPAT_FLAGS(msg));
+       err = __put_user((msg_sys.msg_flags & ~MSG_CMSG_COMPAT),
+                        COMPAT_FLAGS(msg));
        if (err)
                goto out_freeiov;
        if (MSG_CMSG_COMPAT & flags)