From 7804e99346339bb31f801a2fcba63b6fbd8bca4a Mon Sep 17 00:00:00 2001
From: John Schanck <jschanck@mozilla.com>
Date: Mon, 20 May 2024 18:46:14 +0000
Subject: [PATCH] Bug 1895032 - remove redundant AllocItem implementation.
 r=nss-reviewers,rrelyea

Differential Revision: https://phabricator.services.mozilla.com/D209476

--HG--
extra : moz-landing-system : lando

CVE: CVE-2024-6602
Upstream-Status: Backport [https://hg.mozilla.org/projects/nss/rev/f9b22115dc97be76e388dc9d0dca946dde955e64]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
 nss/lib/util/secitem.c | 23 ++++-------------------
 1 file changed, 4 insertions(+), 19 deletions(-)

diff --git a/nss/lib/util/secitem.c b/nss/lib/util/secitem.c
index cd6996178..6ba11a551 100644
--- a/nss/lib/util/secitem.c
+++ b/nss/lib/util/secitem.c
@@ -238,35 +238,20 @@ SECITEM_ArenaDupItem(PLArenaPool *arena, const SECItem *from)
     SECItem *to;
 
     if (from == NULL) {
-        return (NULL);
+        return NULL;
     }
 
-    if (arena != NULL) {
-        to = (SECItem *)PORT_ArenaAlloc(arena, sizeof(SECItem));
-    } else {
-        to = (SECItem *)PORT_Alloc(sizeof(SECItem));
-    }
+    to = SECITEM_AllocItem(arena, NULL, from->len);
     if (to == NULL) {
-        return (NULL);
+        return NULL;
     }
 
-    if (arena != NULL) {
-        to->data = (unsigned char *)PORT_ArenaAlloc(arena, from->len);
-    } else {
-        to->data = (unsigned char *)PORT_Alloc(from->len);
-    }
-    if (to->data == NULL) {
-        PORT_Free(to);
-        return (NULL);
-    }
-
-    to->len = from->len;
     to->type = from->type;
     if (to->len) {
         PORT_Memcpy(to->data, from->data, to->len);
     }
 
-    return (to);
+    return to;
 }
 
 SECStatus
-- 
2.30.2

