Parcourir la source

Fix couple of memory leaks in wpa_config_get_all()

Jouni Malinen il y a 15 ans
Parent
commit
0474686514
1 fichiers modifiés avec 8 ajouts et 2 suppressions
  1. 8 2
      wpa_supplicant/config.c

+ 8 - 2
wpa_supplicant/config.c

@@ -1860,12 +1860,18 @@ char ** wpa_config_get_all(struct wpa_ssid *ssid, int get_keys)
 		if (field->key_data && !get_keys)
 			continue;
 		value = field->writer(field, ssid);
-		if (value == NULL || os_strlen(value) == 0)
+		if (value == NULL)
 			continue;
+		if (os_strlen(value) == 0) {
+			os_free(value);
+			continue;
+		}
 
 		key = os_strdup(field->name);
-		if (key == NULL)
+		if (key == NULL) {
+			os_free(value);
 			goto err;
+		}
 
 		props[fields_num * 2] = key;
 		props[fields_num * 2 + 1] = value;