diff options
author | Richard Levitte <levitte@openssl.org> | 2000-09-18 01:48:38 +0000 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2000-09-18 01:48:38 +0000 |
commit | 362f2b69ff57b95481e6641fd3cd79df7efb55a7 (patch) | |
tree | 2b2fdc60cb04b939b8cac2766e08d82bde197cfd /crypto | |
parent | 3c184d8180f59ac3a2b9baf72f06f1912fabbc89 (diff) |
Jeffrey Altman reminds us to initialize some variables and ercommends the use of LOadLibrary instead of GetModuleHandle
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/rand/rand_win.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/crypto/rand/rand_win.c b/crypto/rand/rand_win.c index 5ef197341f..5793098a7c 100644 --- a/crypto/rand/rand_win.c +++ b/crypto/rand/rand_win.c @@ -184,17 +184,17 @@ int RAND_poll(void) HWND h; HMODULE advapi, kernel, user, netapi; - CRYPTACQUIRECONTEXT acquire; - CRYPTGENRANDOM gen; - CRYPTRELEASECONTEXT release; - NETSTATGET netstatget; - NETFREE netfree; + CRYPTACQUIRECONTEXT acquire = 0; + CRYPTGENRANDOM gen = 0; + CRYPTRELEASECONTEXT release = 0; + NETSTATGET netstatget = 0; + NETFREE netfree = 0; /* load functions dynamically - not available on all systems */ - advapi = GetModuleHandle("ADVAPI32.DLL"); - kernel = GetModuleHandle("KERNEL32.DLL"); - user = GetModuleHandle("USER32.DLL"); - netapi = GetModuleHandle("NETAPI32.DLL"); + advapi = LoadLibrary("ADVAPI32.DLL"); + kernel = LoadLibrary("KERNEL32.DLL"); + user = LoadLibrary("USER32.DLL"); + netapi = LoadLibrary("NETAPI32.DLL"); if (netapi) { @@ -218,6 +218,9 @@ int RAND_poll(void) } } + if (netapi) + FreeLibrary(netapi); + /* Read Performance Statistics from NT/2000 registry */ /* The size of the performance data can vary from call to call */ /* so we must guess the size of the buffer to use and increase */ @@ -289,6 +292,9 @@ int RAND_poll(void) } } + if (advapi) + FreeLibrary(advapi); + /* timer data */ readtimer(); @@ -347,6 +353,8 @@ int RAND_poll(void) w = queue(QS_ALLEVENTS); RAND_add(&w, sizeof(w), 0); } + + FreeLibrary(user); } /* Toolhelp32 snapshot: enumerate processes, threads, modules and heap @@ -443,6 +451,8 @@ int RAND_poll(void) CloseHandle(handle); } + + FreeLibrary(kernel); } #ifdef DEBUG |