From 362f2b69ff57b95481e6641fd3cd79df7efb55a7 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Mon, 18 Sep 2000 01:48:38 +0000 Subject: [PATCH] Jeffrey Altman reminds us to initialize some variables and ercommends the use of LOadLibrary instead of GetModuleHandle --- crypto/rand/rand_win.c | 28 +++++++++++++++++++--------- 1 file 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 -- GitLab