about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJeff <jeff.a.longo@gmail.com>2022-10-01 20:26:39 -0700
committerGitHub <noreply@github.com>2022-10-02 04:26:39 +0100
commite750915c8728234adc07260a399cbcbe99f797c0 (patch)
treeab9af9017f3e255cb276f55edb250bd39c23835e /src
parent9f6dca87a43b9e27a0f4186d8a57cf7be1f0a358 (diff)
downloadlibwifi-e750915c8728234adc07260a399cbcbe99f797c0.tar.gz
libwifi-e750915c8728234adc07260a399cbcbe99f797c0.tar.bz2
libwifi-e750915c8728234adc07260a399cbcbe99f797c0.zip
gen: Fix boundary alignment in Radiotap header
Diffstat (limited to 'src')
-rw-r--r--src/libwifi/gen/misc/radiotap.c5
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));