summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas2016-10-07 09:53:51 +0000
committerHeikki Linnakangas2016-10-07 09:53:51 +0000
commite84e4761f7ff83d657852d0d0a363868be715df2 (patch)
treeec4a7d9f8b1e6acccb83c29fdea75215234e5a2f
parente76d06d7f29522285c34324078469e90e51af772 (diff)
Clear OpenSSL error queue after failed X509_STORE_load_locations() call.
Leaving the error in the error queue used to be harmless, because the X509_STORE_load_locations() call used to be the last step in initialize_SSL(), and we would clear the queue before the next SSL_connect() call. But previous commit moved things around. The symptom was that if a CRL file was not found, and one of the subsequent initialization steps, like loading the client certificate or private key, failed, we would incorrectly print the "no such file" error message from the earlier X509_STORE_load_locations() call as the reason. Backpatch to all supported versions, like the previous patch.
-rw-r--r--src/interfaces/libpq/fe-secure.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/interfaces/libpq/fe-secure.c b/src/interfaces/libpq/fe-secure.c
index d4d8b3801b9..425715a49be 100644
--- a/src/interfaces/libpq/fe-secure.c
+++ b/src/interfaces/libpq/fe-secure.c
@@ -1119,6 +1119,7 @@ initialize_SSL(PGconn *conn)
#endif
}
/* if not found, silently ignore; we do not require CRL */
+ ERR_clear_error();
}
have_rootcert = true;
}