Browse Source

Interworking: Fix failed GAS query processing

The pending GAS entry must be removed from the list when it is removed.
This fixes an issue with potential segfault due to freed memory being
accessed if the driver fails to accept a GAS query.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen 12 years ago
parent
commit
fa5c5b43e4
1 changed files with 1 additions and 0 deletions
  1. 1 0
      wpa_supplicant/gas_query.c

+ 1 - 0
wpa_supplicant/gas_query.c

@@ -453,6 +453,7 @@ int gas_query_req(struct gas_query *gas, const u8 *dst, int freq,
 	if (gas_query_tx(gas, query, req) < 0) {
 	if (gas_query_tx(gas, query, req) < 0) {
 		wpa_printf(MSG_DEBUG, "GAS: Failed to send Action frame to "
 		wpa_printf(MSG_DEBUG, "GAS: Failed to send Action frame to "
 			   MACSTR, MAC2STR(query->addr));
 			   MACSTR, MAC2STR(query->addr));
+		dl_list_del(&query->list);
 		os_free(query);
 		os_free(query);
 		return -1;
 		return -1;
 	}
 	}