Thread (3 messages) 3 messages, 2 authors, 2007-12-31

Re: 2.6.24-rc6-mm1 - git-lblnet.patch and networking horkage

From: James Morris <jmorris@namei.org>
Date: 2007-12-31 21:46:41
Also in: lkml

On Mon, 31 Dec 2007, Paul Moore wrote:
I'm pretty certain this is an uninitialized value problem now and not a 
use-after-free issue.  The invalid/garbage ->iif value seems to only happen 
on packets that are generated locally and sent back into the stack for local 
consumption, e.g. loopback.  These local packets also need to have been 
cloned at some point, either on the output or input path.
I think we need to find out exactly what's happening, first.
The problem appears to be a skb_clone() function which does not clear the skb 
structure properly and fails to copy the ->iif value from the original skb to 
the cloned skb.  From what I can tell, there are two possible solutions to 
this problem:

 1. Clear all of the cloned skb fields in skb_clone() via memset()
Sounds like it's not going to fly for performance reasons in any case.
 2. Copy the ->iif field in __copy_skb_header()
Seems valid.


- James
-- 
James Morris
[off-list ref]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help