| Index: wpa_supplicant/dbus/dbus_new_handlers.c
|
| diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c
|
| index 8e87e204b39f1f020fe8b4ff8cc0fd19d86f3666..40e2c13fbd390e6e98b07fcdb3ed1f6fbf65bf19 100644
|
| --- a/wpa_supplicant/dbus/dbus_new_handlers.c
|
| +++ b/wpa_supplicant/dbus/dbus_new_handlers.c
|
| @@ -995,21 +995,25 @@ static int wpas_dbus_get_scan_ssids(DBusMessage *message, DBusMessageIter *var,
|
| dbus_message_iter_recurse(&array_iter, &sub_array_iter);
|
|
|
| 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 (ssid == NULL) {
|
| - wpa_printf(MSG_DEBUG, "wpas_dbus_handler_scan[dbus]: "
|
| - "out of memory. Cannot allocate memory for "
|
| - "SSID");
|
| - *reply = dbus_message_new_error(
|
| - message, DBUS_ERROR_NO_MEMORY, NULL);
|
| - return -1;
|
| + if (len != 0) {
|
| + ssid = os_malloc(len);
|
| + if (ssid == NULL) {
|
| + wpa_printf(MSG_DEBUG,
|
| + "wpas_dbus_handler_scan[dbus]: "
|
| + "out of memory. Cannot allocate "
|
| + "memory for SSID");
|
| + *reply = dbus_message_new_error(
|
| + message, DBUS_ERROR_NO_MEMORY,
|
| + NULL);
|
| + return -1;
|
| + }
|
| + os_memcpy(ssid, val, len);
|
| + } else {
|
| + /* Allow zero-length SSIDs */
|
| + ssid = NULL;
|
| }
|
| - os_memcpy(ssid, val, len);
|
| +
|
| ssids[ssids_num].ssid = ssid;
|
| ssids[ssids_num].ssid_len = len;
|
|
|
|
|