Attention is currently required from: plaisthos.
Hello plaisthos,
I'd like you to do a code review.
Please visit
http://gerrit.openvpn.net/c/openvpn/+/1670?usp=email
to review the following change.
Change subject: openvpnserv: Fix memory leak when loading DLLs
......................................................................
openvpnserv: Fix memory leak when loading DLLs
Identified by cppcheck.
Change-Id: Iad3f0c36ac3795fa6a13f2d63bd00ad9c2c30d48
Signed-off-by: Frank Lichtenheld <[email protected]>
---
M src/openvpnserv/interactive.c
1 file changed, 14 insertions(+), 6 deletions(-)
git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/70/1670/1
diff --git a/src/openvpnserv/interactive.c b/src/openvpnserv/interactive.c
index ace25b9..e25c511 100644
--- a/src/openvpnserv/interactive.c
+++ b/src/openvpnserv/interactive.c
@@ -1071,6 +1071,7 @@
publish_fn_t RtlPublishWnfStateData;
const DWORD WNF_GPOL_SYSTEM_CHANGES_HI = 0x0D891E2A;
const DWORD WNF_GPOL_SYSTEM_CHANGES_LO = 0xA3BC0875;
+ BOOL ret = FALSE;
HMODULE ntdll = LoadLibraryA("ntdll.dll");
if (ntdll == NULL)
@@ -1081,16 +1082,19 @@
RtlPublishWnfStateData = (publish_fn_t)GetProcAddress(ntdll,
"RtlPublishWnfStateData");
if (RtlPublishWnfStateData == NULL)
{
- return FALSE;
+ goto cleanup;
}
if (RtlPublishWnfStateData(WNF_GPOL_SYSTEM_CHANGES_LO,
WNF_GPOL_SYSTEM_CHANGES_HI, 0, 0, 0, 0)
!= ERROR_SUCCESS)
{
- return FALSE;
+ goto cleanup;
}
- return TRUE;
+ ret = TRUE;
+cleanup:
+ FreeLibrary(ntdll);
+ return ret;
}
/**
@@ -1106,6 +1110,7 @@
unsigned int Length, INT64 ExplicitScope);
publish_fn_t RtlPublishWnfStateData;
const INT64 WNF_GPOL_SYSTEM_CHANGES = 0x0D891E2AA3BC0875;
+ BOOL ret = FALSE;
HMODULE ntdll = LoadLibraryA("ntdll.dll");
if (ntdll == NULL)
@@ -1116,15 +1121,18 @@
RtlPublishWnfStateData = (publish_fn_t)GetProcAddress(ntdll,
"RtlPublishWnfStateData");
if (RtlPublishWnfStateData == NULL)
{
- return FALSE;
+ goto cleanup;
}
if (RtlPublishWnfStateData(WNF_GPOL_SYSTEM_CHANGES, 0, 0, 0, 0) !=
ERROR_SUCCESS)
{
- return FALSE;
+ goto cleanup;
}
- return TRUE;
+ ret = TRUE;
+cleanup:
+ FreeLibrary(ntdll);
+ return ret;
}
/**
--
To view, visit http://gerrit.openvpn.net/c/openvpn/+/1670?usp=email
To unsubscribe, or for help writing mail filters, visit
http://gerrit.openvpn.net/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: Iad3f0c36ac3795fa6a13f2d63bd00ad9c2c30d48
Gerrit-Change-Number: 1670
Gerrit-PatchSet: 1
Gerrit-Owner: flichtenheld <[email protected]>
Gerrit-Reviewer: plaisthos <[email protected]>
Gerrit-CC: openvpn-devel <[email protected]>
Gerrit-Attention: plaisthos <[email protected]>
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel