Parcourir la source

Distinguish empty concatenated vendor-specific IE from missing one

When comparing BSS table entries, handle empty concatenated
vendor-specific IE differently from completely missing IE. This
does not change anything for the only currently compared IE that
can be fragmented (WPS IE), but it is better to have the generic
code here ready for any possible new IE that could be used in
with zero-length data.
Jouni Malinen il y a 14 ans
Parent
commit
f4fbba8cf9
1 fichiers modifiés avec 5 ajouts et 2 suppressions
  1. 5 2
      wpa_supplicant/bss.c

+ 5 - 2
wpa_supplicant/bss.c

@@ -169,8 +169,11 @@ static int are_ies_equal(const struct wpa_bss *old,
 		new_ie_len = new_ie ? new_ie[1] + 2 : 0;
 	}
 
-	ret = (old_ie_len == new_ie_len &&
-	       os_memcmp(old_ie, new_ie, old_ie_len) == 0);
+	if (!old_ie || !new_ie)
+		ret = !old_ie && !new_ie;
+	else
+		ret = (old_ie_len == new_ie_len &&
+		       os_memcmp(old_ie, new_ie, old_ie_len) == 0);
 
 	wpabuf_free(old_ie_buff);
 	wpabuf_free(new_ie_buff);