Re: [regression] nf_iterate(), BUG: unable to handle kernel NULL pointer dereference
From: Patrick McHardy <hidden>
Date: 2008-07-24 12:50:14
Also in:
lkml
From: Patrick McHardy <hidden>
Date: 2008-07-24 12:50:14
Also in:
lkml
Pekka Enberg wrote:
On Thu, Jul 24, 2008 at 3:03 PM, Patrick McHardy [off-list ref] wrote:quoted
Ingo Molnar wrote:quoted
* Ingo Molnar [off-list ref] wrote:quoted
here's a new type of crash a -tip testbox triggered today: BUG: unable to handle kernel NULL pointer dereference at 0000000000000000 IP: [<0000000000000000>] 0x0 ... Call Trace: [<ffffffff80777f25>] ? ipv4_confirm+0x8d/0x122 [<ffffffff80733107>] nf_iterate+0x43/0xa5Does reverting 31d8519c fix this?Hmm, why do you think it's related? It looks like elem->hook() is a NULL pointer but my patch shouldn't make any difference here...
No, its already in ipv4_confirm, so its most likely helper->help() thats NULL, which is contained in an extension. The reason why I think its this patch is (quoting from an old email that I never got a response to): --- Your patch introduced a use-after-free and double-free. krealloc() frees the old pointer, but it is still used for the ->move operations, then freed again. To fix this I think we need a __krealloc() that doesn't free the old memory, especially since it must not be freed immediately because it may still be used in a RCU read side (see the last part in the patch attached to this mail (based on a kernel without your patch)). --- I've attached that patch again.