linux/drivers/net/bonding
Eric Dumazet 8b65deb440 bonding: prevent out of bound accesses
commit f87fda00b6 upstream.

ether_addr_equal_64bits() requires some care about its arguments,
namely that 8 bytes might be read, even if last 2 byte values are not
used.

KASan detected a violation with null_mac_addr and lacpdu_mcast_addr
in bond_3ad.c

Same problem with mac_bcast[] and mac_v6_allmcast[] in bond_alb.c :
Although the 8-byte alignment was there, KASan would detect out
of bound accesses.

Fixes: 815117adaf ("bonding: use ether_addr_equal_unaligned for bond addr compare")
Fixes: bb54e58929 ("bonding: Verify RX LACPDU has proper dest mac-addr")
Fixes: 885a136c52 ("bonding: use compare_ether_addr_64bits() in ALB")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Acked-by: Dmitry Vyukov <dvyukov@google.com>
Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Acked-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.16:
 - Adjust filename
 - Drop change to bond_params::ad_actor_system
 - Fix one more copy of null_mac_addr to use eth_zero_addr()]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2016-08-22 22:38:25 +01:00
..
bond_3ad.c bonding: prevent out of bound accesses 2016-08-22 22:38:25 +01:00
bond_3ad.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-02-19 01:24:22 -05:00
bond_alb.c bonding: prevent out of bound accesses 2016-08-22 22:38:25 +01:00
bond_alb.h bonding: Added bond_tlb_xmit() for tlb mode. 2014-04-24 13:04:34 -04:00
bond_debugfs.c bonding: create a macro for bond mode and use it 2014-05-16 16:34:32 -04:00
bond_main.c bonding: Fix ARP monitor validation 2016-03-08 12:15:37 +00:00
bond_netlink.c bond: Check length of IFLA_BOND_ARP_IP_TARGET attributes 2014-12-15 11:09:20 +00:00
bond_options.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-24 00:32:30 -04:00
bond_options.h bonding: make a generic sysfs option store and fix comments 2014-05-09 16:12:51 -04:00
bond_procfs.c bonding: create a macro for bond mode and use it 2014-05-16 16:34:32 -04:00
bond_sysfs.c bonding: create a macro for bond mode and use it 2014-05-16 16:34:32 -04:00
bond_sysfs_slave.c bonding: create a macro for bond mode and use it 2014-05-16 16:34:32 -04:00
bonding.h bonding: prevent out of bound accesses 2016-08-22 22:38:25 +01:00
Makefile bonding: add sysfs /slave dir for bond slave devices. 2014-01-17 18:51:58 -08:00