diff --git a/src/fst/fst_group.c b/src/fst/fst_group.c index d1c401497..255d0fdc9 100644 --- a/src/fst/fst_group.c +++ b/src/fst/fst_group.c @@ -28,8 +28,13 @@ static void fst_dump_mb_ies(const char *group_id, const char *ifname, while (s >= 2) { const struct multi_band_ie *mbie = (const struct multi_band_ie *) p; + size_t len; + WPA_ASSERT(mbie->eid == WLAN_EID_MULTI_BAND); WPA_ASSERT(2U + mbie->len >= sizeof(*mbie)); + len = 2 + mbie->len; + if (len > s) + break; fst_printf(MSG_WARNING, "%s: %s: mb_ctrl=%u band_id=%u op_class=%u chan=%u bssid=" @@ -45,8 +50,8 @@ static void fst_dump_mb_ies(const char *group_id, const char *ifname, mbie->mb_connection_capability, mbie->fst_session_tmout); - p += 2 + mbie->len; - s -= 2 + mbie->len; + p += len; + s -= len; } }