Merge pull request #624 from ecsv/batadv-for-18.06
[feed/routing.git] / batctl / patches / 0002-batctl-fix-endianness-when-reading-radiotap-header.patch
1 From: Marek Lindner <mareklindner@neomailbox.ch>
2 Date: Wed, 29 Apr 2020 12:09:44 +0200
3 Subject: batctl: fix endianness when reading radiotap header
4
5 All radiotap header fields are specified in little endian byte-order.
6 Header length conversion is necessary on some platforms.
7
8 Fixes: c6fcdb6dc9a9 ("batctl: add radiotap wifi packet decapsulation support")
9 Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
10 Signed-off-by: Sven Eckelmann <sven@narfation.org>
11
12 Origin: upstream, https://git.open-mesh.org/batctl.git/commit/440ae55a6ef96eb73ee628f9237915cf9fb26dee
13
14 diff --git a/tcpdump.c b/tcpdump.c
15 index dc4ccd37c3ddf8650cb79737defd923fe9f33c64..c41500e21eda0abc1f024a3265c23fc3a4802d17 100644
16 --- a/tcpdump.c
17 +++ b/tcpdump.c
18 @@ -29,6 +29,7 @@
19 #include <time.h>
20 #include <sys/time.h>
21 #include <arpa/inet.h>
22 +#include <endian.h>
23 #include <net/if.h>
24 #include <net/if_arp.h>
25 #include <netinet/in.h>
26 @@ -1048,10 +1049,10 @@ static int monitor_header_length(unsigned char *packet_buff, ssize_t buff_len, i
27 return -1;
28
29 radiotap_hdr = (struct radiotap_header*)packet_buff;
30 - if (buff_len <= radiotap_hdr->it_len)
31 + if (buff_len <= le16toh(radiotap_hdr->it_len))
32 return -1;
33 else
34 - return radiotap_hdr->it_len;
35 + return le16toh(radiotap_hdr->it_len);
36 }
37
38 return -1;