Fix typo. Subsequent CLs will add some fuzzers, etc., that'll help with catching this. Change-Id: I10a8e4b2f23ffd07b124e725c1f7454e7ea6f2dd Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/49025 Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/x509/x509_test.cc b/crypto/x509/x509_test.cc index 728bf7a..bd77778 100644 --- a/crypto/x509/x509_test.cc +++ b/crypto/x509/x509_test.cc
@@ -1683,6 +1683,20 @@ } } +TEST(X509Test, PrintGeneralName) { + // TODO(https://crbug.com/boringssl/430): Add more tests. Also fix the + // external projects that use this to extract the SAN list and unexport. + bssl::UniquePtr<GENERAL_NAME> gen = MakeGeneralName(GEN_DNS, "example.com"); + ASSERT_TRUE(gen); + bssl::UniquePtr<STACK_OF(CONF_VALUE)> values( + i2v_GENERAL_NAME(nullptr, gen.get(), nullptr)); + ASSERT_TRUE(values); + ASSERT_EQ(1u, sk_CONF_VALUE_num(values.get())); + const CONF_VALUE *value = sk_CONF_VALUE_value(values.get(), 0); + EXPECT_STREQ(value->name, "DNS"); + EXPECT_STREQ(value->value, "example.com"); +} + TEST(X509Test, TestPSS) { bssl::UniquePtr<X509> cert(CertFromPEM(kExamplePSSCert)); ASSERT_TRUE(cert);
diff --git a/crypto/x509v3/v3_utl.c b/crypto/x509v3/v3_utl.c index ab1f36e..d404013 100644 --- a/crypto/x509v3/v3_utl.c +++ b/crypto/x509v3/v3_utl.c
@@ -96,7 +96,7 @@ char *tname = NULL, *tvalue = NULL; if (name && !(tname = OPENSSL_strdup(name))) goto malloc_err; - if (omit_value) { + if (!omit_value) { /* |CONF_VALUE| cannot represent strings with NULs. */ if (OPENSSL_memchr(value, 0, value_len)) { OPENSSL_PUT_ERROR(X509V3, X509V3_R_INVALID_VALUE);
diff --git a/include/openssl/x509v3.h b/include/openssl/x509v3.h index 46239d9..5dcb894 100644 --- a/include/openssl/x509v3.h +++ b/include/openssl/x509v3.h
@@ -900,6 +900,8 @@ BORINGSSL_MAKE_DELETER(ACCESS_DESCRIPTION, ACCESS_DESCRIPTION_free) BORINGSSL_MAKE_DELETER(AUTHORITY_KEYID, AUTHORITY_KEYID_free) BORINGSSL_MAKE_DELETER(BASIC_CONSTRAINTS, BASIC_CONSTRAINTS_free) +// TODO(davidben): Move this to conf.h and rename to CONF_VALUE_free. +BORINGSSL_MAKE_DELETER(CONF_VALUE, X509V3_conf_free) BORINGSSL_MAKE_DELETER(DIST_POINT, DIST_POINT_free) BORINGSSL_MAKE_DELETER(GENERAL_NAME, GENERAL_NAME_free) BORINGSSL_MAKE_DELETER(GENERAL_SUBTREE, GENERAL_SUBTREE_free)