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 openssl-dev@openssl.org
Automated List Manager [EMAIL PROTECTED]