summaryrefslogtreecommitdiffstats
path: root/crypto/dso
diff options
context:
space:
mode:
authorAndy Polyakov <appro@openssl.org>2006-01-01 18:38:59 +0000
committerAndy Polyakov <appro@openssl.org>2006-01-01 18:38:59 +0000
commit302ea8c260fa8800ea1e494dd470028e6b00bac7 (patch)
tree8f2356981a525e36f9ba4969e5e77678075bda53 /crypto/dso
parenta1f3462bc005db71ff85d85b97a64fd2a206b05a (diff)
Fix mapping "leak" in newly introduced win32_globallookup.
Diffstat (limited to 'crypto/dso')
-rw-r--r--crypto/dso/dso_win32.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/crypto/dso/dso_win32.c b/crypto/dso/dso_win32.c
index 73ffe36591..94fe473377 100644
--- a/crypto/dso/dso_win32.c
+++ b/crypto/dso/dso_win32.c
@@ -809,7 +809,12 @@ static DSO_FUNC_TYPE win32_globallookup(const char *name)
module_next = (MODULE32)GetProcAddress(dll,"Module32Next");
hModuleSnap = (*create_snap)(TH32CS_SNAPMODULE,0);
- if( hModuleSnap == INVALID_HANDLE_VALUE ) return NULL;
+ if( hModuleSnap == INVALID_HANDLE_VALUE )
+ {
+ FreeLibrary(dll);
+ DSOerr(DSO_F_PATHBYADDR,DSO_R_UNSUPPORTED);
+ return NULL;
+ }
me32.dwSize = sizeof(me32);