I thought we'd already established this as a bug?
When a state is changed, the marker of the state needs to change, as
well. The fact that freeing the strings doesn't clear the "loaded"
flag is... well, overlooking something obvious.
On 3/29/06, Viji <[EMAIL PROTECTED]> wrote:
>
> Hello All,
>
> It seems there is a bug in ERR_load_SSL_strings() function when called more
> than once. ERR_error_string() doesnot print the error message.
>
>
> This can be reproduced using the following sample program.
> ====================================================
> #include <openssl/err.h>
> #include <openssl/ssl.h>
>
> int main()
> {
>
> ERR_load_SSL_strings();
> printf("%s\n",ERR_error_string(336109761,NULL));
> ERR_free_strings();
>
> ERR_load_SSL_strings();
> printf("%s\n",ERR_error_string(336109761,NULL));
> ERR_free_strings();
>
> return 0;
> }
> ====================================================
>
> # cc err.c -lcrypto -lssl
> # ./a.out
> error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared
> cipher
> error:1408A0C1:lib(20):func(138):reason(193)
>
> This is because ERR_load_SSL_strings() sets a static variable when it is
> called and it dooesnot unset this variable in ERR_free_strings(). So any
> further call to ERR_load_SSL_strings() does nothing and returns.
>
> Please provide ur views on this.
>
> Thanks,
> Vijayalakshmi.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]