netfilter: nf_conntrack_dccp: fix skb_header_pointer API usages
authorDaniel Borkmann <dborkman@redhat.com>
Sun, 5 Jan 2014 23:57:54 +0000 (00:57 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 6 Jan 2014 16:40:02 +0000 (17:40 +0100)
commitb22f5126a24b3b2f15448c3f2a254fc10cbc2b92
treef8ac8b9d95631e8434ed6e692e0119c8e4166bd6
parent138aef7dca831403e50a719d1be18dfd52027ea2
netfilter: nf_conntrack_dccp: fix skb_header_pointer API usages

Some occurences in the netfilter tree use skb_header_pointer() in
the following way ...

  struct dccp_hdr _dh, *dh;
  ...
  skb_header_pointer(skb, dataoff, sizeof(_dh), &dh);

... where dh itself is a pointer that is being passed as the copy
buffer. Instead, we need to use &_dh as the forth argument so that
we're copying the data into an actual buffer that sits on the stack.

Currently, we probably could overwrite memory on the stack (e.g.
with a possibly mal-formed DCCP packet), but unintentionally, as
we only want the buffer to be placed into _dh variable.

Fixes: 2bc780499aa3 ("[NETFILTER]: nf_conntrack: add DCCP protocol support")
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_proto_dccp.c