On Nov 15, 2007 2:48 PM, Patrick McHardy <kaber@xxxxxxxxx> wrote: > 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? Yes, it's working fine, thank 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> Tested-by: Luca Tettamanti <kronos.it@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); > > - To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html