diff options
author | Evgeniy Polyakov <johnpol@2ka.mipt.ru> | 2007-11-20 04:27:35 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-11-20 04:27:35 -0800 |
commit | 1f305323ff5b9ddc1a4346d36072bcdb58f3f68a (patch) | |
tree | aa4497ece78e8fe53113d6d39bca8a2159d88c7d /net/socket.c | |
parent | 0a06ea87185531705e4417e3a051f81b64f210c1 (diff) |
[NETFILTER]: Fix kernel panic with REDIRECT target.
When connection tracking entry (nf_conn) is about to copy itself it can
have some of its extension users (like nat) as being already freed and
thus not required to be copied.
Actually looking at this function I suspect it was copied from
nf_nat_setup_info() and thus bug was introduced.
Report and testing from David <david@unsolicited.net>.
[ Patrick McHardy states:
I now understand whats happening:
- new connection is allocated without helper
- connection is REDIRECTed to localhost
- nf_nat_setup_info adds NAT extension, but doesn't initialize it yet
- nf_conntrack_alter_reply performs a helper lookup based on the
new tuple, finds the SIP helper and allocates a helper extension,
causing reallocation because of too little space
- nf_nat_move_storage is called with the uninitialized nat extension
So your fix is entirely correct, thanks a lot :) ]
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/socket.c')
0 files changed, 0 insertions, 0 deletions