I think I should change e_os2.h so OPENSSL_SYS_MSDOS is only defined for OPENSSL_SYSNAME_WIN16 and OPENSSL_SYSNAME_WIN16. Does that seem to be a good solution, or is there something I've missed?
[[EMAIL PROTECTED] - Thu May 23 14:20:17 2002]: > Hi, > > There is a bug in 'e_os.h'. > The effect is that Win32 multithreaded applications crash. > > The problem is that currently OPENSSL_SYS_MSDOS is > defined also for Win32 platform, and MS_STATIC is defined > as 'static' as follows: > > #if defined(OPENSSL_SYS_MSDOS) > # define MS_STATIC static > #else > # define MS_STATIC > #endif > > MS_STATIC is used here and there where there is a large > auto variable used. In Win32 those are not a problem - instead > the code is now not re-entrant. > > I would recommend to change that problematic definition as follows: > > #if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYSNAME_WIN32) > # define MS_STATIC static > #else > # define MS_STATIC > #endif > > The bug seems to exist in all 0.9.7 snapshots. > > In 0.9.6 the definition is as follows : > > #if defined(WIN16) || defined(MSDOS) > # define MS_STATIC static > #else > # define MS_STATIC > #endif > This works fine in all Windoze environments. > > Best regards > Raimo Vuonnala > Nokia Internet Communications > Helsinki, Finland -- Richard Levitte [EMAIL PROTECTED] ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]