]> git.baikalelectronics.ru Git - kernel.git/commit
net: 6lowpan: fix lowpan_header_create non-compression memcpy call
authorDaniel Borkmann <dborkman@redhat.com>
Mon, 6 Jan 2014 00:45:50 +0000 (01:45 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Jan 2014 01:25:24 +0000 (20:25 -0500)
commit06abd09e10d8f2df86b28835022784bd5e8a2961
treeba08d2d9cde29f57f77b466fee04fdf1f071d2e8
parent7f9eaf5cc3460c0b3af0b03646209196155a5955
net: 6lowpan: fix lowpan_header_create non-compression memcpy call

In function lowpan_header_create(), we invoke the following code
construct:

  struct ipv6hdr *hdr;
  ...
  hdr = ipv6_hdr(skb);
  ...
  if (...)
    memcpy(hc06_ptr + 1, &hdr->flow_lbl[1], 2);
  else
    memcpy(hc06_ptr, &hdr, 4);

Where the else path of the condition, that is, non-compression
path, calls memcpy() with a pointer to struct ipv6hdr *hdr as
source, thus two levels of indirection. This cannot be correct,
and likely only one level of pointer was intended as source
buffer for memcpy() here.

Fixes: 6f65d28db3e3 ("IEEE802.15.4: 6LoWPAN basic support")
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Cc: Werner Almesberger <werner@almesberger.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ieee802154/6lowpan.c