Subject: Re: Slab Corruption with ipv6 and tcp6fuzz

From: Eric Sesterhenn <[email-masked]>
Date: Sun, 27 Apr 2008 17:32:11 +0200

* Patrick McManus ([email-masked]) wrote:
> I'll take a look asap - thanks for the cc:, I've been away.

Evgeniys patch fixes the issue for me and i see no more corruptions.

Eric 

> > > Ok, I can not reproduce it, so lets try hard way.
> > > Can you test attached patch, its idea is described above and I checked
> > > multiple times, that it is forbidden to free skb and return non-zero
> > > value from tcp_rcv_established(). This behaviour was introduced with TCP
> > > defer accept changes in 2.6.25 with
> > > ec3c0982a2dd1e671bad8e9d26c28dcba0039d87 commit.
> > > 
> > > Please test. This bug affects both ipv6 and ipv4 code actually.
> > > 
> > > diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> > > index ac9b848..0298f80 100644
> > > --- a/net/ipv4/tcp_input.c
> > > +++ b/net/ipv4/tcp_input.c
> > > @@ -4925,8 +4925,7 @@ step5:
> > >  	tcp_data_snd_check(sk);
> > >  	tcp_ack_snd_check(sk);
> > >  
> > > -	if (tcp_defer_accept_check(sk))
> > > -		return -1;
> > > +	tcp_defer_accept_check(sk);
> > >  	return 0;
> > >  
> > >  csum_error: