summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorEugene Teo <eugeneteo@kernel.sg>2009-02-23 15:38:41 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2009-03-16 17:52:41 -0700
commita6fa7047cf5cb20353178e9b31c3105f13461b54 (patch)
tree54eb805c2301f10c41df3fc1e3fc8125d9f6783a /net
parentb82b59ae48f1a634456fbaff15bb33b52f581ac7 (diff)
net: amend the fix for SO_BSDCOMPAT gsopt infoleak
[ 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>
Diffstat (limited to 'net')
-rw-r--r--net/core/sock.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/sock.c b/net/core/sock.c
index b1b2f226aa7c..d9fa31b991f6 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -695,7 +695,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: