Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Bluetooth: bnep: Fix out-of-bound access

This fixes attempting to access past ethhdr.h_source, although it seems
intentional to copy also the contents of h_proto this triggers
out-of-bound access problems with the likes of static analyzer, so this
instead just copy ETH_ALEN and then proceed to use put_unaligned to copy
h_proto separetely.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>

+2 -1
+2 -1
net/bluetooth/bnep/core.c
··· 385 385 386 386 case BNEP_COMPRESSED_DST_ONLY: 387 387 __skb_put_data(nskb, skb_mac_header(skb), ETH_ALEN); 388 - __skb_put_data(nskb, s->eh.h_source, ETH_ALEN + 2); 388 + __skb_put_data(nskb, s->eh.h_source, ETH_ALEN); 389 + put_unaligned(s->eh.h_proto, (__be16 *)__skb_put(nskb, 2)); 389 390 break; 390 391 391 392 case BNEP_GENERAL: