From e750915c8728234adc07260a399cbcbe99f797c0 Mon Sep 17 00:00:00 2001 From: Jeff Date: Sat, 1 Oct 2022 20:26:39 -0700 Subject: gen: Fix boundary alignment in Radiotap header --- src/libwifi/gen/misc/radiotap.c | 5 +++++ 1 file changed, 5 insertions(+) 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 uint32_t presence_bit = rtap_hdr.it_present; for (int field = 0; field < radiotap_ns.n_bits; field++) { if (presence_bit & 1) { + uint8_t padding = offset % radiotap_ns.align_size[field].align; + if (padding > 0) { + memset(rtap_data + offset, 0, padding); + offset += padding; + } switch (field) { case IEEE80211_RADIOTAP_CHANNEL: memcpy(rtap_data + offset, &info->channel.freq, sizeof(info->channel.freq)); -- cgit 1.4.1