Subject: Re: shutdown oops in xt_compat_calc_jump

From: dann frazier <[email-masked]>
Date: Tue, 5 Apr 2011 15:08:33 -0600

On Tue, Apr 05, 2011 at 12:41:10PM +0200, Patrick McHardy wrote:
> On 05.04.2011 09:17, Eric Dumazet wrote:
> > Here is the cumulative patch
> 
> 
> Thanks Eric. I'll wait for confirmation from Dann before applying
> this.

Yes, thanks Eric! I'll test as soon as I can take my laptop down..

     -dann
> 
> > [PATCH] netfilter: fix ebtables
> > 
> > commit 255d0dc34068a976 (netfilter: x_table: speedup compat operations)
> > made ebtables not working anymore.
> > 
> > 1) xt_compat_calc_jump() is not an exact match lookup, and 
> > 2) compat_table_info() has a typo in xt_compat_init_offsets() call
> > 3) compat_do_replace() misses a xt_compat_init_offsets() call
> > 
> > Reported-by: dann frazier <[email-masked]>
> > Signed-off-by: Eric Dumazet <[email-masked]>
> > ---
> >  net/bridge/netfilter/ebtables.c |    3 ++-
> >  net/netfilter/x_tables.c        |    3 +++
> >  2 files changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
> > index 893669c..c66aa80 100644
> > --- a/net/bridge/netfilter/ebtables.c
> > +++ b/net/bridge/netfilter/ebtables.c
> > @@ -1766,7 +1766,7 @@ static int compat_table_info(const struct ebt_table_info *info,
> >  
> >  	newinfo->entries_size = size;
> >  
> > -	xt_compat_init_offsets(AF_INET, info->nentries);
> > +	xt_compat_init_offsets(NFPROTO_BRIDGE, info->nentries /* + 4*/);
> 
> I assume the /* + 4 */ is left over from debugging, I'll remove it
> before applying.
>