summaryrefslogtreecommitdiff
path: root/gsupplicant
diff options
context:
space:
mode:
authorVolodymyr Ostap <ostvolodymyr@gmail.com>2018-12-11 10:20:14 -0800
committerDaniel Wagner <wagi@monom.org>2018-12-12 11:08:35 +0100
commit469e49ae62feee886ba64ff87efc9ac93fbf9792 (patch)
treefebf979e8abec1db56c36b8e7fc0b212c24d3fd9 /gsupplicant
parent4e6f411c10c71abc09fd08abf0d3944310153a3b (diff)
downloadconnman-469e49ae62feee886ba64ff87efc9ac93fbf9792.tar.gz
wifi: Don't pass empty SSID to gsupplicant
Fix gsupplicant not to include empty entry "SSIDs" in D-Bus message to wpa_supplicant To do an active wifi scan on all channels ConnMan calls gsupplicant's g_supplicant_interface_scan() with empty list of frequencies and empty list of SSIDs. gsupplicant used to send an empty entry of "SSIDs" in this case. Sending the empty entry "SSIDs" to wpa_supplicant 2.6 triggers an error in wpas_dbus_get_scan_ssids() called from wpas_dbus_handler_scan(). The function does not expect the empty list and fails with the error: "wpas_dbus_get_scan_ssids[dbus]: ssids must be an array of arrays of bytes"
Diffstat (limited to 'gsupplicant')
-rw-r--r--gsupplicant/supplicant.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index be2deaa5..b814b320 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -4303,11 +4303,13 @@ static void interface_scan_params(DBusMessageIter *iter, void *user_data)
supplicant_dbus_dict_append_basic(&dict, "Type",
DBUS_TYPE_STRING, &type);
- supplicant_dbus_dict_append_array(&dict, "SSIDs",
- DBUS_TYPE_STRING,
- append_ssids,
- data->scan_params);
+ if (data->scan_params->ssids) {
+ supplicant_dbus_dict_append_array(&dict, "SSIDs",
+ DBUS_TYPE_STRING,
+ append_ssids,
+ data->scan_params);
+ }
supplicant_add_scan_frequency(&dict, add_scan_frequencies,
data->scan_params);
} else