From: Leena Gunda <leena.gu...@wipro.com>

Fixes BMC#11687

---
Free the properties if already allocated before doing a g_strdup.

 gsupplicant/supplicant.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 6302af0..1459aea 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -1272,20 +1272,32 @@ static void interface_property(const char *key, 
DBusMessageIter *iter,
                const char *str = NULL;
 
                dbus_message_iter_get_basic(iter, &str);
-               if (str != NULL)
+               if (str != NULL) {
+                       if (interface->ifname != NULL)
+                               g_free(interface->ifname);
+
                        interface->ifname = g_strdup(str);
+               }
        } else if (g_strcmp0(key, "Driver") == 0) {
                const char *str = NULL;
 
                dbus_message_iter_get_basic(iter, &str);
-               if (str != NULL)
+               if (str != NULL) {
+                       if (interface->driver != NULL)
+                               g_free(interface->driver);
+
                        interface->driver = g_strdup(str);
+               }
        } else if (g_strcmp0(key, "BridgeIfname") == 0) {
                const char *str = NULL;
 
                dbus_message_iter_get_basic(iter, &str);
-               if (str != NULL)
+               if (str != NULL) {
+                       if (interface->bridge != NULL)
+                               g_free(interface->bridge);
+
                        interface->bridge = g_strdup(str);
+               }
        } else if (g_strcmp0(key, "CurrentBSS") == 0) {
                interface_bss_added(iter, interface);
        } else if (g_strcmp0(key, "CurrentNetwork") == 0) {
-- 
1.7.2.2

_______________________________________________
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman

Reply via email to