Use g_strdup to avoid double free 96/236096/1
authorDeokhyun Kim <dukan.kim@samsung.com>
Thu, 11 Jun 2020 09:18:59 +0000 (18:18 +0900)
committerWootak Jung <wootak.jung@samsung.com>
Mon, 15 Jun 2020 00:56:24 +0000 (09:56 +0900)
Change-Id: If591f112b1deb63a6c7433e6eda646ccef3696a9
Signed-off-by: Deokhyun Kim <dukan.kim@samsung.com>
Signed-off-by: Wootak Jung <wootak.jung@samsung.com>
bt-oal/bluez_hal/src/bt-hal-agent.c

index 3fe5914..0390f87 100644 (file)
@@ -426,7 +426,7 @@ static gboolean __bt_hal_pincode_request(GapAgentPrivate *agent, GDBusProxy *dev
        G_VARIANT_UNREF(tmp_value);
 
        if (!name)
-               name = address;
+               name = g_strdup(address);
 
        if (headed_plugin_info->plugin_headed_enabled) {
                __bt_hal_get_auth_info(reply, (char *)auth_info);
@@ -554,7 +554,7 @@ static gboolean __bt_hal_display_request(GapAgentPrivate *agent, GDBusProxy *dev
        G_VARIANT_UNREF(tmp_value);
 
        if (!name)
-               name = address;
+               name = g_strdup(address);
 
        str_passkey = g_strdup_printf("%d", passkey);
 
@@ -627,7 +627,7 @@ static gboolean __bt_hal_passkey_request(GapAgentPrivate *agent, GDBusProxy *dev
        G_VARIANT_UNREF(tmp_value);
 
        if (!name)
-               name = address;
+               name = g_strdup(address);
 
        DBG("PASSKEY_REQUEST");
 
@@ -691,7 +691,7 @@ static gboolean __bt_hal_confirm_request(GapAgentPrivate *agent, GDBusProxy *dev
        G_VARIANT_UNREF(tmp_value);
 
        if (!name)
-               name = address;
+               name = g_strdup(address);
 
        if (headed_plugin_info->plugin_headed_enabled) {
                unsigned char auth_info[5] = {0, };
@@ -760,7 +760,7 @@ static gboolean __bt_hal_authorize_request(GapAgentPrivate *agent, GDBusProxy *d
        g_variant_get(tmp_value, "s", &name);
        G_VARIANT_UNREF(tmp_value);
        if (!name)
-               name = address;
+               name = g_strdup(address);
 
        tmp_value = g_variant_lookup_value(reply, "Trusted", G_VARIANT_TYPE_BOOLEAN);
        g_variant_get(tmp_value, "b", &trust);