]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Allow hostapd wep_key# parameters to be cleared
authorJouni Malinen <jouni@qca.qualcomm.com>
Mon, 5 Dec 2016 19:28:50 +0000 (21:28 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 5 Dec 2016 19:28:50 +0000 (21:28 +0200)
Setting wep_key# to an empty string will now clear a previously
configured key. This is needed to be able to change WEP configured AP to
using WPA/WPA2 through the hostapd control interface SET commands.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
hostapd/config_file.c

index 832ff5517ac68d59e128f27870645d65da940430..d9fdd20b445d0a2fc2d8abf38c295c3495dce688 100644 (file)
@@ -768,7 +768,25 @@ static int hostapd_config_read_wep(struct hostapd_wep_keys *wep, int keyidx,
 {
        size_t len = os_strlen(val);
 
-       if (keyidx < 0 || keyidx > 3 || wep->key[keyidx] != NULL)
+       if (keyidx < 0 || keyidx > 3)
+               return -1;
+
+       if (len == 0) {
+               int i, set = 0;
+
+               bin_clear_free(wep->key[keyidx], wep->len[keyidx]);
+               wep->key[keyidx] = NULL;
+               wep->len[keyidx] = 0;
+               for (i = 0; i < NUM_WEP_KEYS; i++) {
+                       if (wep->key[i])
+                               set++;
+               }
+               if (!set)
+                       wep->keys_set = 0;
+               return 0;
+       }
+
+       if (wep->key[keyidx] != NULL)
                return -1;
 
        if (val[0] == '"') {