]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
dbus: Validate SSID length in new D-Bus scan request
authorSam Leffler <sleffler@chromium.org>
Sun, 22 Jan 2012 10:00:44 +0000 (12:00 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 22 Jan 2012 10:02:09 +0000 (12:02 +0200)
Validate the length of each SSID passed in a new D-Bus protocol
Scan request.

wpa_supplicant/dbus/dbus_new_handlers.c

index e3526d460ea449df9512035c15c86096a591acb2..f90c060fd0de379fc014ffc30ec392e6ff5e1492 100644 (file)
@@ -921,6 +921,16 @@ static int wpas_dbus_get_scan_ssids(DBusMessage *message, DBusMessageIter *var,
 
                dbus_message_iter_get_fixed_array(&sub_array_iter, &val, &len);
 
+               if (len > MAX_SSID_LEN) {
+                       wpa_printf(MSG_DEBUG,
+                                  "wpas_dbus_handler_scan[dbus]: "
+                                  "SSID too long (len=%d max_len=%d)",
+                                  len, MAX_SSID_LEN);
+                       *reply = wpas_dbus_error_invalid_args(
+                               message, "Invalid SSID: too long");
+                       return -1;
+               }
+
                if (len != 0) {
                        ssid = os_malloc(len);
                        if (ssid == NULL) {