luci-mod-network: fix logic bug in parse enc for network join

In handleJoinConfirm while is_wep is a boolean, is_psk and is_sae are an array. In the following if check, all 3 are used as boolean but Js treat empty array as positive values and this cause the ui to wrongly set the encryption to sae. fix this by checking if the array actually contains data.

Fixes: #4524
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
This commit is contained in:
Ansuel Smith 2020-11-01 01:51:02 +01:00
parent ae47a5104d
commit ba98a2fd05
No known key found for this signature in database
GPG key ID: AC001D09ADBFEAD7

View file

@ -1841,11 +1841,11 @@ return view.extend({
uci.set('wireless', section_id, 'bssid', bss.bssid);
}
if (is_sae) {
if (is_sae.length > 0) {
uci.set('wireless', section_id, 'encryption', 'sae');
uci.set('wireless', section_id, 'key', passval);
}
else if (is_psk) {
else if (is_psk.length > 0) {
for (var i = enc.wpa.length - 1; i >= 0; i--) {
if (enc.wpa[i] == 2) {
uci.set('wireless', section_id, 'encryption', 'psk2');