Re: [2.6.24][BUG] Compact code broken?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Miller wrote:
From: "Luca Tettamanti" <kronos.it@xxxxxxxxx>
Date: Thu, 15 Nov 2007 00:39:11 +0100

On Nov 15, 2007 12:00 AM, David Miller <davem@xxxxxxxxxxxxx> wrote:
From: Luca Tettamanti <kronos.it@xxxxxxxxx>
Date: Wed, 14 Nov 2007 22:28:55 +0100

Hello,
I'm testing a 64bit kernel on my machine and I've found an issue with
iptables (32 bit). Kernel is git current (9418d5dc).
What platform?  x86?  powerpc?  sparc64?
x86

Ok, the userland pointer you provided seemed to be sign extended
to 64-bit, so there might be a pointer arithmetic bug in the
netfilter compat code somewhere.


It took me a few passes over the code, but it turns out to be
a simple typo :)

Luca, does this fix it for you?

[NETFILTER]: fix compat_nf_sockopt typo

It should pass opt to the ->get/->set functions, not ops.

Fixes compat fault reported by Luca Tettamanti <kronos.it@xxxxxxxxx>

Signed-off-by: Patrick McHardy <kaber@xxxxxxxxx>

---
commit ac55193be35872211189096ec600f94614a0179b
tree a6633e33307b5ec1e11fedc2d0e125ed6e2bd081
parent 99fee6d7e5748d96884667a4628118f7fc130ea0
author Patrick McHardy <kaber@xxxxxxxxx> Thu, 15 Nov 2007 14:46:43 +0100
committer Patrick McHardy <kaber@xxxxxxxxx> Thu, 15 Nov 2007 14:46:43 +0100

 net/netfilter/nf_sockopt.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/netfilter/nf_sockopt.c b/net/netfilter/nf_sockopt.c
index 87bc144..3dd4b3c 100644
--- a/net/netfilter/nf_sockopt.c
+++ b/net/netfilter/nf_sockopt.c
@@ -143,12 +143,12 @@ static int compat_nf_sockopt(struct sock *sk, int pf, int val,
 		if (ops->compat_get)
 			ret = ops->compat_get(sk, val, opt, len);
 		else
-			ret = ops->get(sk, val, ops, len);
+			ret = ops->get(sk, val, opt, len);
 	} else {
 		if (ops->compat_set)
-			ret = ops->compat_set(sk, val, ops, *len);
+			ret = ops->compat_set(sk, val, opt, *len);
 		else
-			ret = ops->set(sk, val, ops, *len);
+			ret = ops->set(sk, val, opt, *len);
 	}
 
 	module_put(ops->owner);

[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux