The upper bound for the element length was already verified, but that
was not apparently noticed by a static analyzer (CID 68128).
Signed-off-by: Jouni Malinen <j@w1.fi>
end = pos + wpabuf_len(resp);
while (pos < end) {
- if (pos + 4 > end) {
+ unsigned int left = end - pos;
+
+ if (left < 4) {
wpa_printf(MSG_DEBUG, "ANQP: Invalid element");
break;
}
pos += 2;
slen = WPA_GET_LE16(pos);
pos += 2;
- if (pos + slen > end) {
+ left -= 4;
+ if (left < slen) {
wpa_printf(MSG_DEBUG, "ANQP: Invalid element length "
"for Info ID %u", info_id);
break;