v14-0006-NSS-to-be-submitted-separately.patch
application/octet-stream
Filename: v14-0006-NSS-to-be-submitted-separately.patch
Type: application/octet-stream
Part: 5
Patch
Format: format-patch
Series: patch v14-0006
Subject: NSS to be submitted separately
| File | + | − |
|---|---|---|
| contrib/pgcrypto/openssl.c | 1 | 1 |
| doc/src/sgml/sslinfo.sgml | 1 | 1 |
| src/backend/libpq/be-secure-openssl.c | 15 | 1 |
From f2e9c124ecf695f0434588037ac37592f6f3848e Mon Sep 17 00:00:00 2001
From: Daniel Gustafsson <daniel@yesql.se>
Date: Wed, 28 Oct 2020 11:35:06 +0100
Subject: [PATCH v14 6/6] NSS to be submitted separately
---
contrib/pgcrypto/openssl.c | 2 +-
doc/src/sgml/sslinfo.sgml | 2 +-
src/backend/libpq/be-secure-openssl.c | 16 +++++++++++++++-
3 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/contrib/pgcrypto/openssl.c b/contrib/pgcrypto/openssl.c
index ed96e4ce53..5ebe213406 100644
--- a/contrib/pgcrypto/openssl.c
+++ b/contrib/pgcrypto/openssl.c
@@ -400,7 +400,7 @@ gen_ossl_encrypt(PX_Cipher *c, const uint8 *data, unsigned dlen,
}
if (!EVP_EncryptUpdate(od->evp_ctx, res, &outlen, data, dlen))
- return PXE_ERR_GENERIC;
+ return PXE_ENCRYPT_FAILED;
return 0;
}
diff --git a/doc/src/sgml/sslinfo.sgml b/doc/src/sgml/sslinfo.sgml
index e8a4e7b332..253bb697af 100644
--- a/doc/src/sgml/sslinfo.sgml
+++ b/doc/src/sgml/sslinfo.sgml
@@ -55,7 +55,7 @@
<listitem>
<para>
Returns the name of the protocol used for the SSL connection (e.g., TLSv1.0
- TLSv1.1, or TLSv1.2).
+ TLSv1.1, TLSv1.2 or TLSv1.3).
</para>
</listitem>
</varlistentry>
diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c
index 8b21ff4065..5962cffc0c 100644
--- a/src/backend/libpq/be-secure-openssl.c
+++ b/src/backend/libpq/be-secure-openssl.c
@@ -1298,15 +1298,28 @@ X509_NAME_to_cstring(X509_NAME *name)
char *dp;
char *result;
+ if (membuf == NULL)
+ ereport(ERROR,
+ (errcode(ERRCODE_OUT_OF_MEMORY),
+ errmsg("failed to create BIO")));
+
(void) BIO_set_close(membuf, BIO_CLOSE);
for (i = 0; i < count; i++)
{
e = X509_NAME_get_entry(name, i);
nid = OBJ_obj2nid(X509_NAME_ENTRY_get_object(e));
+ if (nid == NID_undef)
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("could not get NID for ASN1_OBJECT object")));
v = X509_NAME_ENTRY_get_data(e);
field_name = OBJ_nid2sn(nid);
if (!field_name)
field_name = OBJ_nid2ln(nid);
+ if (field_name == NULL)
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
+ errmsg("could not convert NID %d to an ASN1_OBJECT structure", nid)));
BIO_printf(membuf, "/%s=", field_name);
ASN1_STRING_print_ex(membuf, v,
((ASN1_STRFLGS_RFC2253 & ~ASN1_STRFLGS_ESC_MSB)
@@ -1322,7 +1335,8 @@ X509_NAME_to_cstring(X509_NAME *name)
result = pstrdup(dp);
if (dp != sp)
pfree(dp);
- BIO_free(membuf);
+ if (BIO_free(membuf) != 1)
+ elog(ERROR, "could not free OpenSSL BIO structure");
return result;
}
--
2.21.1 (Apple Git-122.3)