summaryrefslogtreecommitdiffstats
path: root/security/nss/lib/ssl/tls13con.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/lib/ssl/tls13con.c')
-rw-r--r--security/nss/lib/ssl/tls13con.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/security/nss/lib/ssl/tls13con.c b/security/nss/lib/ssl/tls13con.c
index 2a3b8994a9..87f6d5bd7e 100644
--- a/security/nss/lib/ssl/tls13con.c
+++ b/security/nss/lib/ssl/tls13con.c
@@ -3977,12 +3977,13 @@ tls13_HandleCertificateDecode(sslSocket *ss, PRUint8 *b, PRUint32 length)
/* Decoding received certificate. */
SECItem decodedCertificate = { siBuffer, NULL, 0 };
+ if (!SECITEM_AllocItem(NULL, &decodedCertificate, decodedCertificateLen)) {
+ FATAL_ERROR(ss, SEC_ERROR_NO_MEMORY, internal_error);
+ return SECFailure;
+ }
- SECItem encodedCertAsSecItem;
- SECITEM_MakeItem(NULL, &encodedCertAsSecItem, b, compressedCertificateMessageLen);
-
+ SECItem encodedCertAsSecItem = { siBuffer, b, compressedCertificateMessageLen };
rv = certificateDecodingFunc(&encodedCertAsSecItem, &decodedCertificate, decodedCertificateLen);
- SECITEM_FreeItem(&encodedCertAsSecItem, PR_FALSE);
if (rv != SECSuccess) {
SSL_TRC(50, ("%d: TLS13[%d]: %s decoding of the certificate has failed",