|
@@ -987,21 +987,24 @@ static int wpas_dbus_get_scan_ssids(DBusMessage *message, DBusMessageIter *var,
|
|
dbus_message_iter_recurse(&array_iter, &sub_array_iter);
|
|
dbus_message_iter_recurse(&array_iter, &sub_array_iter);
|
|
|
|
|
|
dbus_message_iter_get_fixed_array(&sub_array_iter, &val, &len);
|
|
dbus_message_iter_get_fixed_array(&sub_array_iter, &val, &len);
|
|
- if (len == 0) {
|
|
|
|
- dbus_message_iter_next(&array_iter);
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
|
|
|
|
- ssid = os_malloc(len);
|
|
+ if (len != 0) {
|
|
- if (ssid == NULL) {
|
|
+ ssid = os_malloc(len);
|
|
- wpa_printf(MSG_DEBUG, "wpas_dbus_handler_scan[dbus]: "
|
|
+ if (ssid == NULL) {
|
|
- "out of memory. Cannot allocate memory for "
|
|
+ wpa_printf(MSG_DEBUG,
|
|
- "SSID");
|
|
+ "wpas_dbus_handler_scan[dbus]: "
|
|
- *reply = dbus_message_new_error(
|
|
+ "out of memory. Cannot allocate "
|
|
- message, DBUS_ERROR_NO_MEMORY, NULL);
|
|
+ "memory for SSID");
|
|
- return -1;
|
|
+ *reply = dbus_message_new_error(
|
|
|
|
+ message, DBUS_ERROR_NO_MEMORY, NULL);
|
|
|
|
+ return -1;
|
|
|
|
+ }
|
|
|
|
+ os_memcpy(ssid, val, len);
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ ssid = NULL;
|
|
}
|
|
}
|
|
- os_memcpy(ssid, val, len);
|
|
+
|
|
ssids[ssids_num].ssid = ssid;
|
|
ssids[ssids_num].ssid = ssid;
|
|
ssids[ssids_num].ssid_len = len;
|
|
ssids[ssids_num].ssid_len = len;
|
|
|
|
|