From 2fe8c130167cfe25a6ef1922a4d902dacf4263b4 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Wed, 27 Aug 2025 05:54:55 -0700 Subject: [PATCH] scan: store vendor quirks in scan_bss As each vendor IE is parsed lookup if there are any quirks associated with it, and store these in a bit mask. --- src/scan.c | 6 ++++++ src/scan.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/scan.c b/src/scan.c index d9f27c83..46ea79ef 100644 --- a/src/scan.c +++ b/src/scan.c @@ -51,6 +51,7 @@ #include "src/mpdu.h" #include "src/band.h" #include "src/scan.h" +#include "src/vendor_quirks.h" /* User configurable options */ static double RANK_2G_FACTOR; @@ -1221,6 +1222,11 @@ static void scan_parse_vendor_specific(struct scan_bss *bss, const void *data, uint16_t cost_flags; bool dgaf_disable; + if (L_WARN_ON(len < 3)) + return; + + vendor_quirks_append_for_oui(data, &bss->vendor_quirks); + if (!bss->wpa && is_ie_wpa_ie(data, len)) { bss->wpa = l_memdup(data - 2, len + 2); return; diff --git a/src/scan.h b/src/scan.h index 4c1ebc21..ae6a3a79 100644 --- a/src/scan.h +++ b/src/scan.h @@ -21,6 +21,7 @@ */ #include "src/defs.h" +#include "src/vendor_quirks.h" struct scan_freq_set; struct ie_rsn_info; @@ -79,6 +80,7 @@ struct scan_bss { uint8_t *wfd; /* Concatenated WFD IEs */ ssize_t wfd_size; /* Size of Concatenated WFD IEs */ int8_t snr; + struct vendor_quirk vendor_quirks; bool mde_present : 1; bool cc_present : 1; bool cap_rm_neighbor_report : 1;