From e0b40bfe55338d08d8b1f6bcf0d750aec1ecef80 Mon Sep 17 00:00:00 2001
From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date: Sat, 11 May 2024 16:18:57 +0200
Subject: [PATCH] Fix missing deref in C14N
Follow-up for 30a0b0359ed8338c0e3acd1682de3cf96429e898, which didn't fix
all places. This is the last remaining place.
---
ext/dom/node.c | 1 +
ext/dom/tests/DOMNode_C14N_references.phpt | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/ext/dom/node.c b/ext/dom/node.c
index 82f40860cfd35..c80f9c3333c6c 100644
--- a/ext/dom/node.c
+++ b/ext/dom/node.c
@@ -1667,6 +1667,7 @@ static void dom_canonicalization(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{
inclusive_ns_prefixes = safe_emalloc(zend_hash_num_elements(Z_ARRVAL_P(ns_prefixes)) + 1,
sizeof(xmlChar *), 0);
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(ns_prefixes), tmpns) {
+ ZVAL_DEREF(tmpns);
if (Z_TYPE_P(tmpns) == IS_STRING) {
inclusive_ns_prefixes[nscount++] = (xmlChar *) Z_STRVAL_P(tmpns);
}
diff --git a/ext/dom/tests/DOMNode_C14N_references.phpt b/ext/dom/tests/DOMNode_C14N_references.phpt
index 514e22be6365a..5612874f5f30f 100644
--- a/ext/dom/tests/DOMNode_C14N_references.phpt
+++ b/ext/dom/tests/DOMNode_C14N_references.phpt
@@ -38,4 +38,4 @@ unset($v);
echo $doc->C14N(true, false, $xpath, $prefixes);
?>
--EXPECT--
-
+