[NETFILTER]: nf_conntrack: fix ct_extend ->move operation
authorPatrick McHardy <kaber@trash.net>
Fri, 8 Feb 2008 01:56:34 +0000 (17:56 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Feb 2008 01:56:34 +0000 (17:56 -0800)
commit86577c661bc01d5c4e477d74567df4470d6c5138
treebbe853c912e959be44b61d2a3c14a761fe9226ac
parentb2155e7f70b3f058efe94c0c459db023b05057bd
[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>
include/net/netfilter/nf_conntrack_extend.h
net/ipv4/netfilter/nf_nat_core.c
net/netfilter/nf_conntrack_extend.c