[openssl-commits] [openssl] OpenSSL_1_0_0-stable update
Matt Caswell
matt at openssl.org
Tue Jan 13 10:00:51 UTC 2015
The branch OpenSSL_1_0_0-stable has been updated
via 23df532ec481886880c42bea035c7b872b7b5091 (commit)
from b960060a0dbb73e95b0d13308f84a13438692fc2 (commit)
- Log -----------------------------------------------------------------
commit 23df532ec481886880c42bea035c7b872b7b5091
Author: Matt Caswell <matt at openssl.org>
Date: Fri Jan 9 14:06:36 2015 +0000
Avoid deprecation problems in Visual Studio 13
Reviewed-by: Andy Polyakov <appro at openssl.org>
(cherry picked from commit 86d21d0b9577322ac5da0114c5fac16eb49b4cef)
-----------------------------------------------------------------------
Summary of changes:
crypto/rand/rand_win.c | 61 ++----------------------------------------------
e_os.h | 4 +++-
2 files changed, 5 insertions(+), 60 deletions(-)
diff --git a/crypto/rand/rand_win.c b/crypto/rand/rand_win.c
index 34ffcd2..c37c416 100644
--- a/crypto/rand/rand_win.c
+++ b/crypto/rand/rand_win.c
@@ -196,12 +196,6 @@ int RAND_poll(void)
DWORD w;
int good = 0;
- /* Determine the OS version we are on so we can turn off things
- * that do not work properly.
- */
- OSVERSIONINFO osverinfo ;
- osverinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO) ;
- GetVersionEx( &osverinfo ) ;
#if defined(OPENSSL_SYS_WINCE)
# if defined(_WIN32_WCE) && _WIN32_WCE>=300
@@ -281,56 +275,6 @@ int RAND_poll(void)
* at random times on Windows 2000. Reported by Jeffrey Altman.
* Only use it on NT.
*/
- /* Wolfgang Marczy <WMarczy at topcall.co.at> reports that
- * the RegQueryValueEx call below can hang on NT4.0 (SP6).
- * So we don't use this at all for now. */
-#if 0
- if ( osverinfo.dwPlatformId == VER_PLATFORM_WIN32_NT &&
- osverinfo.dwMajorVersion < 5)
- {
- /* 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 its size if we get an ERROR_MORE_DATA
- * return instead of ERROR_SUCCESS.
- */
- LONG rc=ERROR_MORE_DATA;
- char * buf=NULL;
- DWORD bufsz=0;
- DWORD length;
-
- while (rc == ERROR_MORE_DATA)
- {
- buf = realloc(buf,bufsz+8192);
- if (!buf)
- break;
- bufsz += 8192;
-
- length = bufsz;
- rc = RegQueryValueEx(HKEY_PERFORMANCE_DATA, TEXT("Global"),
- NULL, NULL, buf, &length);
- }
- if (rc == ERROR_SUCCESS)
- {
- /* For entropy count assume only least significant
- * byte of each DWORD is random.
- */
- RAND_add(&length, sizeof(length), 0);
- RAND_add(buf, length, length / 4.0);
-
- /* Close the Registry Key to allow Windows to cleanup/close
- * the open handle
- * Note: The 'HKEY_PERFORMANCE_DATA' key is implicitly opened
- * when the RegQueryValueEx above is done. However, if
- * it is not explicitly closed, it can cause disk
- * partition manipulation problems.
- */
- RegCloseKey(HKEY_PERFORMANCE_DATA);
- }
- if (buf)
- free(buf);
- }
-#endif
if (advapi)
{
@@ -383,7 +327,7 @@ int RAND_poll(void)
if (advapi)
FreeLibrary(advapi);
- if ((osverinfo.dwPlatformId != VER_PLATFORM_WIN32_NT ||
+ if ((!check_winnt() ||
!OPENSSL_isservice()) &&
(user = LoadLibrary(TEXT("USER32.DLL"))))
{
@@ -407,8 +351,7 @@ int RAND_poll(void)
* on NT4 even though it exists in SP3 (or SP6) and
* higher.
*/
- if ( osverinfo.dwPlatformId == VER_PLATFORM_WIN32_NT &&
- osverinfo.dwMajorVersion < 5)
+ if (check_winnt() && !check_win_minplat(5))
cursor = 0;
}
if (cursor)
diff --git a/e_os.h b/e_os.h
index b66b895..fc1782a 100644
--- a/e_os.h
+++ b/e_os.h
@@ -371,11 +371,13 @@ static __inline unsigned int _strlen31(const char *str)
# define DEFAULT_HOME "C:"
# endif
-/* Avoid Windows 8 SDK GetVersion deprecated problems */
+/* Avoid Visual Studio 13 GetVersion deprecated problems */
#if defined(_MSC_VER) && _MSC_VER>=1800
# define check_winnt() (1)
+# define check_win_minplat(x) (1)
#else
# define check_winnt() (GetVersion() < 0x80000000)
+# define check_win_minplat(x) (LOBYTE(LOWORD(GetVersion())) >= (x))
#endif
#else /* The non-microsoft world */
More information about the openssl-commits
mailing list