diff options
-rw-r--r-- | src/libwifi/gen/misc/radiotap.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libwifi/gen/misc/radiotap.c b/src/libwifi/gen/misc/radiotap.c index cc02097..366ee8c 100644 --- a/src/libwifi/gen/misc/radiotap.c +++ b/src/libwifi/gen/misc/radiotap.c | |||
@@ -36,6 +36,11 @@ size_t libwifi_create_radiotap(struct libwifi_radiotap_info *info, char *radiota | |||
36 | uint32_t presence_bit = rtap_hdr.it_present; | 36 | uint32_t presence_bit = rtap_hdr.it_present; |
37 | for (int field = 0; field < radiotap_ns.n_bits; field++) { | 37 | for (int field = 0; field < radiotap_ns.n_bits; field++) { |
38 | if (presence_bit & 1) { | 38 | if (presence_bit & 1) { |
39 | uint8_t padding = offset % radiotap_ns.align_size[field].align; | ||
40 | if (padding > 0) { | ||
41 | memset(rtap_data + offset, 0, padding); | ||
42 | offset += padding; | ||
43 | } | ||
39 | switch (field) { | 44 | switch (field) { |
40 | case IEEE80211_RADIOTAP_CHANNEL: | 45 | case IEEE80211_RADIOTAP_CHANNEL: |
41 | memcpy(rtap_data + offset, &info->channel.freq, sizeof(info->channel.freq)); | 46 | memcpy(rtap_data + offset, &info->channel.freq, sizeof(info->channel.freq)); |