From b1a9a1072985e0421c4c2bb3304b0250c9905f85 Mon Sep 17 00:00:00 2001 From: Seonah Moon Date: Thu, 30 Jul 2020 14:28:25 +0900 Subject: [PATCH] Fix memory leak Change-Id: I138dffa717b9fd322b0d3e7e2f7307be1e70ed40 --- src/capi_vpn_service.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/capi_vpn_service.c b/src/capi_vpn_service.c index cb508f8..6e180c7 100755 --- a/src/capi_vpn_service.c +++ b/src/capi_vpn_service.c @@ -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 { -- 2.7.4