diff options
author | Volodymyr Ostap <ostvolodymyr@gmail.com> | 2018-12-11 10:20:14 -0800 |
---|---|---|
committer | Daniel Wagner <wagi@monom.org> | 2018-12-12 11:08:35 +0100 |
commit | 469e49ae62feee886ba64ff87efc9ac93fbf9792 (patch) | |
tree | febf979e8abec1db56c36b8e7fc0b212c24d3fd9 /gsupplicant | |
parent | 4e6f411c10c71abc09fd08abf0d3944310153a3b (diff) | |
download | connman-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.c | 10 |
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 |