Free netlink socket 43/234743/1 accepted/tizen/unified/20200601.051726 submit/tizen/20200529.030032
authorCheoleun Moon <chleun.moon@samsung.com>
Thu, 28 May 2020 08:23:27 +0000 (17:23 +0900)
committerCheoleun Moon <chleun.moon@samsung.com>
Thu, 28 May 2020 08:23:32 +0000 (17:23 +0900)
Change-Id: I1995731fb132fa75161a84a0eb8c14fc1b68de24
Signed-off-by: Cheoleun Moon <chleun.moon@samsung.com>
src/wifi-netlink-scan.c

index c4ebca873d09ca7f80a8352d4636b90b77f53461..d74ab848169c696692080042d5cbc3cc07802454 100755 (executable)
@@ -784,6 +784,17 @@ fail:
        return err;
 }
 
+static void __netconfig_deinitialize_nl80211(netconfig_nl_global *global)
+{
+       if (global == NULL)
+               return;
+
+       if (global->socket) {
+               nl_socket_free(global->socket);
+               global->socket = NULL;
+       }
+}
+
 static int __netconfig_initialize_nl_msg(netconfig_nl_global *global)
 {
        int rv;
@@ -889,6 +900,7 @@ int handle_netlink_scan(Wifi *wifi, GDBusMethodInvocation *context, GVariant *pa
                DBG("__netconfig_netlink_scan() failed, error %d", ret);
                netconfig_error_dbus_method_return(context, NETCONFIG_ERROR_INTERNAL, "AccessDenied");
                wifi_complete_netlink_scan(wifi, context);
+               __netconfig_deinitialize_nl80211(&global);
                return TRUE;
        }
 
@@ -896,11 +908,13 @@ int handle_netlink_scan(Wifi *wifi, GDBusMethodInvocation *context, GVariant *pa
        if (ret < 0) {
                netconfig_error_dbus_method_return(context, NETCONFIG_ERROR_INTERNAL, "AccessDenied");
                wifi_complete_netlink_scan(wifi, context);
+               __netconfig_deinitialize_nl80211(&global);
                return TRUE;
        }
 
        wifi_complete_netlink_scan(wifi, context);
        __netconfig_notify_netlink_scan_done();
+       __netconfig_deinitialize_nl80211(&global);
 
        return TRUE;
 }