]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
hostapd: Report error on unknown ACCEPT_ACL/DENY_ACL commands
authorRaphaël Mélotte <raphael.melotte@mind.be>
Wed, 4 Jan 2023 15:53:50 +0000 (16:53 +0100)
committerJouni Malinen <j@w1.fi>
Wed, 1 Feb 2023 16:38:21 +0000 (18:38 +0200)
Currently when using ACCEPT_ACL or DENY_ACL, no error is reported if
the rest of the command is unknown (e.g. 'ACCEPT_ACL FOOBAR' reports
'OK').

On the other hand, hostapd_cli makes it possible to use 'accept_acl'
and 'deny_acl' in lowercase, but the rest of the command (i.e. 'SHOW',
'ADD_MAC', 'CLEAR', etc) must be in uppercase.

As a result, the command 'accept_acl clear' could seem valid when
using hostapd_cli (as it reports 'OK'), while it actually does not do
anything (because 'clear' must be in uppercase).

To let users know whether the command really succeeded or not, report
an error when the command was not understood.

Note that this is also consistent with the way it is currently
implemented in wpa_supplicant.

Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
hostapd/ctrl_iface.c

index 464dfc8ee4ed9c1bc58760ab6cb96f13fa2e3c5e..656aacc7db096d19318dcacd8d1b1cc3d9710b61 100644 (file)
@@ -3550,6 +3550,8 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
                        if (hostapd_set_acl(hapd) ||
                            hostapd_disassoc_accept_mac(hapd))
                                reply_len = -1;
+               } else {
+                       reply_len = -1;
                }
        } else if (os_strncmp(buf, "DENY_ACL ", 9) == 0) {
                if (os_strncmp(buf + 9, "ADD_MAC ", 8) == 0) {
@@ -3575,6 +3577,8 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
                                &hapd->conf->num_deny_mac);
                        if (hostapd_set_acl(hapd))
                                reply_len = -1;
+               } else {
+                       reply_len = -1;
                }
 #ifdef CONFIG_DPP
        } else if (os_strncmp(buf, "DPP_QR_CODE ", 12) == 0) {