On 09.02.24 20:32, Johannes Berg wrote:
- if (sscanf(buf, "%u %u %u", &ac, &q_limit_low, &q_limit_high) != 3)
+ n = sscanf(buf, "%u %u %u", &ac, &q_limit_low, &q_limit_high);
+ if (n < 2)
return -EINVAL;
- if (ac >= IEEE80211_NUM_ACS)
+ if (ac == IEEE80211_NUM_ACS) {
+ local->aql_txq_limit_bc = q_limit_low;
+ return count;
+ }
If we keep this, it should probably check n == 2?
But not sure I like it - in other places ac == NUM_ACS means management
rather than not multicast; could we just check something like
strncmp(buf, "mcast ", 6)
instead? Or "BC/MC" matching the output? Though we don't match VO on
input either.
Sure. I will do this:
if (sscanf(buf, "mcast %u", &q_limit_low) == 1) {
local->aql_txq_limit_bc = q_limit_low;
return count;
}