mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
wifi: cfg80211: require zero terminator in valid_regdb country table
valid_regdb() walks the regulatory.db country table and returns true as soon as either: - a zero coll_ptr entry (the required terminator) is found, or - the next country entry would no longer fit in the buffer. The second case silently accepts a database image whose country table reaches the end of the buffer without a zero-terminator. The callers of valid_regdb() assume that every country is zero terminated. Exit immediately upon zero terminator, don't accept a database without a zero terminator. Assisted-by: GitHubCopilot:GPT-5.3-Codex Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://patch.msgid.link/20260922133709.3d75b1440a1b.Ib92fa3a47e4cd5109c6139e9a4aac85c50f9be22@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
e6c32e485f
commit
6c05e2aac5
|
|
@ -820,13 +820,13 @@ static bool valid_regdb(const u8 *data, unsigned int size)
|
|||
country = &hdr->country[0];
|
||||
while ((u8 *)(country + 1) <= data + size) {
|
||||
if (!country->coll_ptr)
|
||||
break;
|
||||
return true;
|
||||
if (!valid_country(data, size, country))
|
||||
return false;
|
||||
country++;
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
static void set_wmm_rule(const struct fwdb_header *db,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user