diff options
author | Patrick McHardy <kaber@trash.net> | 2008-02-07 20:56:34 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-07 20:56:34 -0500 |
commit | 86577c661bc01d5c4e477d74567df4470d6c5138 (patch) | |
tree | bbe853c912e959be44b61d2a3c14a761fe9226ac /include/net | |
parent | b2155e7f70b3f058efe94c0c459db023b05057bd (diff) |
[NETFILTER]: nf_conntrack: fix ct_extend ->move operation
The ->move operation has two bugs:
- It is called with the same extension as source and destination,
so it doesn't update the new extension.
- The address of the old extension is calculated incorrectly,
instead of (void *)ct->ext + ct->ext->offset[i] it uses
ct->ext + ct->ext->offset[i].
Fixes a crash on x86_64 reported by Chuck Ebbert <cebbert@redhat.com>
and Thomas Woerner <twoerner@redhat.com>.
Tested-by: Thomas Woerner <twoerner@redhat.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/netfilter/nf_conntrack_extend.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h index 73b5711faf32..49aac6323fbe 100644 --- a/include/net/netfilter/nf_conntrack_extend.h +++ b/include/net/netfilter/nf_conntrack_extend.h | |||
@@ -67,7 +67,7 @@ struct nf_ct_ext_type | |||
67 | void (*destroy)(struct nf_conn *ct); | 67 | void (*destroy)(struct nf_conn *ct); |
68 | /* Called when realloacted (can be NULL). | 68 | /* Called when realloacted (can be NULL). |
69 | Contents has already been moved. */ | 69 | Contents has already been moved. */ |
70 | void (*move)(struct nf_conn *ct, void *old); | 70 | void (*move)(void *new, void *old); |
71 | 71 | ||
72 | enum nf_ct_ext_id id; | 72 | enum nf_ct_ext_id id; |
73 | 73 | ||