]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
wpa_supplicant: Convert SSID into printable form before printing
authorKaidong Wang <kaidong@chromium.org>
Wed, 15 Jun 2022 19:55:43 +0000 (19:55 +0000)
committerJouni Malinen <j@w1.fi>
Sun, 27 Nov 2022 12:18:53 +0000 (14:18 +0200)
SSID may include unprintable characters. This change converts
unprintable characters into printable form before printing SSID in the
function wpas_send_ctrl_req(). The conversion is based on the function
wpa_ssid_txt().

Signed-off-by: Kaidong Wang <kaidong@chromium.org>
wpa_supplicant/wpas_glue.c

index fc5676e0991d5a2a8947327d84c60bc8f67fd00a..4641595467d4db750f094d039bc4870c73e4e6f1 100644 (file)
@@ -942,28 +942,9 @@ const char * wpa_supplicant_ctrl_req_to_string(enum wpa_ctrl_req_type field,
 void wpas_send_ctrl_req(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
                        const char *field_name, const char *txt)
 {
-       char *buf;
-       size_t buflen;
-       int len;
-
-       buflen = 100 + os_strlen(txt) + ssid->ssid_len;
-       buf = os_malloc(buflen);
-       if (buf == NULL)
-               return;
-       len = os_snprintf(buf, buflen, "%s-%d:%s needed for SSID ",
-                         field_name, ssid->id, txt);
-       if (os_snprintf_error(buflen, len)) {
-               os_free(buf);
-               return;
-       }
-       if (ssid->ssid && buflen > len + ssid->ssid_len) {
-               os_memcpy(buf + len, ssid->ssid, ssid->ssid_len);
-               len += ssid->ssid_len;
-               buf[len] = '\0';
-       }
-       buf[buflen - 1] = '\0';
-       wpa_msg(wpa_s, MSG_INFO, WPA_CTRL_REQ "%s", buf);
-       os_free(buf);
+       wpa_msg(wpa_s, MSG_INFO, WPA_CTRL_REQ "%s-%d:%s needed for SSID %s",
+               field_name, ssid->id, txt,
+               wpa_ssid_txt(ssid->ssid, ssid->ssid_len));
 }