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]

Reply via email to