]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
net: amend the fix for SO_BSDCOMPAT gsopt infoleak
authorEugene Teo <eugeneteo@kernel.sg>
Mon, 23 Feb 2009 23:38:41 +0000 (15:38 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 17 Mar 2009 00:31:54 +0000 (17:31 -0700)
[ Upstream commit 50fee1dec5d71b8a14c1b82f2f42e16adc227f8b ]

The fix for CVE-2009-0676 (upstream commit df0bca04) is incomplete. Note
that the same problem of leaking kernel memory will reappear if someone
on some architecture uses struct timeval with some internal padding (for
example tv_sec 64-bit and tv_usec 32-bit) --- then, you are going to
leak the padded bytes to userspace.

Signed-off-by: Eugene Teo <eugeneteo@kernel.sg>
Reported-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/core/sock.c

index a7a09758c62db9b153eab88bdd4624a9f5c24290..7eb5e9b99834336eea19acdd93d5db49dc905a77 100644 (file)
@@ -696,7 +696,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
        if (len < 0)
                return -EINVAL;
 
-       v.val = 0;
+       memset(&v, 0, sizeof(v));
 
        switch(optname) {
        case SO_DEBUG: