Commit 3a7f777a authored by Kyle Nekritz's avatar Kyle Nekritz Committed by Facebook Github Bot

Clear error stack in readCertsFromBuffer.

Summary:
Otherwise this function throws if there was an error left in the
stack.

Reviewed By: AjanthanAsogamoorthy

Differential Revision: D12840871

fbshipit-source-id: 233c10e0448c937a68bf8f09d24ccaa12fcc57a4
parent c36c506a
......@@ -214,6 +214,7 @@ std::vector<X509UniquePtr> OpenSSLCertUtils::readCertsFromBuffer(
throw std::runtime_error("failed to create BIO");
}
std::vector<X509UniquePtr> certs;
ERR_clear_error();
while (true) {
X509UniquePtr x509(PEM_read_bio_X509(b.get(), nullptr, nullptr, nullptr));
if (x509) {
......
......@@ -286,6 +286,14 @@ TEST_F(OpenSSLCertUtilsTest, TestReadCertsFromMixedBuffer) {
}
}
TEST_F(OpenSSLCertUtilsTest, TestReadCertsWithErrorInStack) {
SSLerr(SSL_F_SSL3_READ_BYTES, SSL_R_SSL_HANDSHAKE_FAILURE);
auto certs = folly::ssl::OpenSSLCertUtils::readCertsFromBuffer(
StringPiece(kTestCertBundle));
validateTestCertBundle(certs);
}
TEST_F(OpenSSLCertUtilsTest, TestX509Digest) {
auto x509 = readCertFromFile(kTestCertWithoutSan);
EXPECT_NE(x509, nullptr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment