batman-adv: Avoid uninitialized chaddr when handling DHCP
authorSven Eckelmann <sven@narfation.org>
Wed, 22 Jul 2020 18:36:43 +0000 (20:36 +0200)
committerSimon Wunderlich <sw@simonwunderlich.de>
Tue, 18 Aug 2020 17:40:03 +0000 (19:40 +0200)
commit303216e76dcab6049c9d42390b1032f0649a8206
tree068638f8971e1c6bd1c2d5f6acbf923ab4d6f168
parent9123e3a74ec7b934a4a099e98af6a61c2f80bbf5
batman-adv: Avoid uninitialized chaddr when handling DHCP

The gateway client code can try to optimize the delivery of DHCP packets to
avoid broadcasting them through the whole mesh. But also transmissions to
the client can be optimized by looking up the destination via the chaddr of
the DHCP packet.

But the chaddr is currently only done when chaddr is fully inside the
non-paged area of the skbuff. Otherwise it will not be initialized and the
unoptimized path should have been taken.

But the implementation didn't handle this correctly. It didn't retrieve the
correct chaddr but still tried to perform the TT lookup with this
uninitialized memory.

Reported-by: syzbot+ab16e463b903f5a37036@syzkaller.appspotmail.com
Fixes: 6c413b1c22a2 ("batman-adv: send every DHCP packet as bat-unicast")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Acked-by: Antonio Quartulli <a@unstable.cc>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
net/batman-adv/gateway_client.c