From f4fbba8cf92027b852443866e03217a4fe7644e5 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Thu, 14 Apr 2011 02:25:43 +0300 Subject: [PATCH] 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. --- wpa_supplicant/bss.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wpa_supplicant/bss.c b/wpa_supplicant/bss.c index b50ec3a0e..5b48951f0 100644 --- a/wpa_supplicant/bss.c +++ b/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);