Clear error queue when starting SSL_CTX_use_certificate_chain_file
PR: 1417, 1513
Submitted by: Erik de Castro Lopo <mle+openssl@mega-nerd.com>
diff --git a/CHANGES b/CHANGES
index e14c405..c726ac5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -686,6 +686,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 fc42dfa..a7721d0 100644
--- a/ssl/ssl_rsa.c
+++ b/ssl/ssl_rsa.c
@@ -708,6 +708,12 @@
 	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)
 		{