Fix memory leak 28/239828/2 accepted/tizen/unified/20200731.145639 submit/tizen/20200731.014630
authorSeonah Moon <seonah1.moon@samsung.com>
Thu, 30 Jul 2020 05:28:25 +0000 (14:28 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Thu, 30 Jul 2020 06:24:02 +0000 (15:24 +0900)
Change-Id: I138dffa717b9fd322b0d3e7e2f7307be1e70ed40

src/capi_vpn_service.c

index cb508f8..6e180c7 100755 (executable)
@@ -340,8 +340,11 @@ EXPORT_API int vpnsvc_init(const char* iface_name, vpnsvc_h *handle)
                                                        NULL,
                                                        &dbus_result);
 
-       if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED)
+       if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) {
+               close(iface_fd);
+               _vpnsvc_deinit_vpnsvc_tun_s(tmp_s);
                return VPNSVC_ERROR_PERMISSION_DENIED;
+       }
 
        op = _vpnsvc_invoke_dbus_method_with_fd(tmp_s->connection,
                                                        NETCONFIG_SERVICE_NAME,
@@ -352,8 +355,11 @@ EXPORT_API int vpnsvc_init(const char* iface_name, vpnsvc_h *handle)
                                                        iface_fd,
                                                        &dbus_result);
 
-       if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED)
+       if (dbus_result == VPNSVC_ERROR_PERMISSION_DENIED) {
+               close(iface_fd);
+               _vpnsvc_deinit_vpnsvc_tun_s(tmp_s);
                return VPNSVC_ERROR_PERMISSION_DENIED;
+       }
 
        if (op == NULL) {
                close(iface_fd); //LCOV_EXCL_LINE
@@ -366,6 +372,7 @@ EXPORT_API int vpnsvc_init(const char* iface_name, vpnsvc_h *handle)
                g_variant_get(op, "(iis)", &result, &tmp_index, &tmp_name);
                if (result != VPNSVC_ERROR_NONE) {
                        LOGE("vpnsvc_init() failed"); //LCOV_EXCL_LINE
+                       close(iface_fd);
                        _vpnsvc_deinit_vpnsvc_tun_s(tmp_s); //LCOV_EXCL_LINE
                        result = VPNSVC_ERROR_PERMISSION_DENIED; //LCOV_EXCL_LINE
                } else {