3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-05 03:29:24 +01:00

network: add L_WARN for known network lookup failure

When updating the network ranking there was a potential out of bounds
array access. The condition was if known_network_offset returned a
negative value, indicating the known network was not found. Since
network->info is only set for known networks this should not ever
happen as network->info is checked prior.

Though this is likely impossible, knownnetworks is complex enough that
its better to just be paranoid and put an L_WARN_ON to check the
return.
This commit is contained in:
James Prestwood 2019-10-25 12:53:21 -04:00 committed by Denis Kenzior
parent cf6499387f
commit 0d7fbfe523

View File

@ -1376,6 +1376,8 @@ void network_rank_update(struct network *network, bool connected)
if (network->info->connected_time != 0) { if (network->info->connected_time != 0) {
int n = known_network_offset(network->info); int n = known_network_offset(network->info);
L_WARN_ON(n < 0);
if (n >= (int) L_ARRAY_SIZE(rankmod_table)) if (n >= (int) L_ARRAY_SIZE(rankmod_table))
n = L_ARRAY_SIZE(rankmod_table) - 1; n = L_ARRAY_SIZE(rankmod_table) - 1;