diff --git a/CHANGES b/CHANGES index 77ffb0644..9c4559fa5 100644 --- a/CHANGES +++ b/CHANGES @@ -4,6 +4,12 @@ Changes between 0.9.8g and 0.9.8h [xx XXX xxxx] + *) Clear error queue in SSL_CTX_use_certificate_chain_file() + + Clear the error queue to ensure that error entries left from + older function calls do not interfere with the correct operation. + [Lutz Jaenicke, Erik de Castro Lopo] + *) Remove root CA certificates of commercial CAs: The OpenSSL project does not recommend any specific CA and does not diff --git a/ssl/ssl_rsa.c b/ssl/ssl_rsa.c index fc42dfa1e..a7721d05e 100644 --- a/ssl/ssl_rsa.c +++ b/ssl/ssl_rsa.c @@ -708,6 +708,12 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file) int ret=0; X509 *x=NULL; + ERR_clear_error(); /* This function needs to check the error stack + even if the return code(s) of called functions + indicate success. + The error stack must therefore be cleared + before starting. */ + in=BIO_new(BIO_s_file_internal()); if (in == NULL) {