[PATCH] wpa_supplicant: If empty bytearray sent via DBUS use default value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In case wpa_supplicant receive empty byte array via dbus
(e.g.: from Network Manager which sends empty private key password field)
it will use the "NULL" default value.

Signed-off-by: Istvan Bodnar <mail.bodnaristvan@xxxxxxxxx>
---
 wpa_supplicant/dbus/dbus_new_handlers.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c
b/wpa_supplicant/dbus/dbus_new_handlers.c
index 6c36d91a0..45c16c2e7 100644
--- a/wpa_supplicant/dbus/dbus_new_handlers.c
+++ b/wpa_supplicant/dbus/dbus_new_handlers.c
@@ -206,17 +206,25 @@ dbus_bool_t set_network_properties(struct
wpa_supplicant *wpa_s,
                value = NULL;
                if (entry.type == DBUS_TYPE_ARRAY &&
                    entry.array_type == DBUS_TYPE_BYTE) {
-                       if (entry.array_len <= 0)
+                       if (entry.array_len < 0)
                                goto error;
+                       if (entry.array_len == 0)
+                               size = strlen("NULL") + 3;
+                       else
+                               size = entry.array_len * 2 + 1;

-                       size = entry.array_len * 2 + 1;
                        value = os_zalloc(size);
                        if (value == NULL)
                                goto error;

-                       ret = wpa_snprintf_hex(value, size,
-                                              (u8 *) entry.bytearray_value,
-                                              entry.array_len);
+                       if (entry.array_len == 0)
+                               ret = os_snprintf(value, size, "\"%s\"",
+                                                 "NULL");
+                       else
+                               ret = wpa_snprintf_hex(value, size,
+                                                      (u8 *)
entry.bytearray_value,
+                                                      entry.array_len);
+
                        if (ret <= 0)
                                goto error;
                } else if (entry.type == DBUS_TYPE_STRING) {
-- 
2.17.1
From 230b2f6857b136858d6dd6b815e5b86906cc13fc Mon Sep 17 00:00:00 2001
From: Istvan Bodnar <mail.bodnaristvan@xxxxxxxxx>
Date: Thu, 22 Aug 2019 21:26:43 +0200
Subject: [PATCH] wpa_supplicant: If empty bytearray sent via DBUS use default
 value

In case wpa_supplicant receive empty byte array via dbus
(e.g.: from Network Manager which sends empty private key password field)
it will use the "NULL" default value.

Signed-off-by: Istvan Bodnar <mail.bodnaristvan@xxxxxxxxx>
---
 wpa_supplicant/dbus/dbus_new_handlers.c | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c
index 6c36d91a0..45c16c2e7 100644
--- a/wpa_supplicant/dbus/dbus_new_handlers.c
+++ b/wpa_supplicant/dbus/dbus_new_handlers.c
@@ -206,17 +206,25 @@ dbus_bool_t set_network_properties(struct wpa_supplicant *wpa_s,
 		value = NULL;
 		if (entry.type == DBUS_TYPE_ARRAY &&
 		    entry.array_type == DBUS_TYPE_BYTE) {
-			if (entry.array_len <= 0)
+			if (entry.array_len < 0)
 				goto error;
+			if (entry.array_len == 0)
+				size = strlen("NULL") + 3;
+			else
+				size = entry.array_len * 2 + 1;
 
-			size = entry.array_len * 2 + 1;
 			value = os_zalloc(size);
 			if (value == NULL)
 				goto error;
 
-			ret = wpa_snprintf_hex(value, size,
-					       (u8 *) entry.bytearray_value,
-					       entry.array_len);
+			if (entry.array_len == 0)
+				ret = os_snprintf(value, size, "\"%s\"",
+						  "NULL");
+			else
+				ret = wpa_snprintf_hex(value, size,
+						       (u8 *) entry.bytearray_value,
+						       entry.array_len);
+
 			if (ret <= 0)
 				goto error;
 		} else if (entry.type == DBUS_TYPE_STRING) {
-- 
2.17.1

_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap

[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux