From 1890d47c516d904c61d748ad3648d1a4fc452689 Mon Sep 17 00:00:00 2001 From: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Date: Sat, 11 May 2024 17:12:20 +0200 Subject: [PATCH] Fix missing deref in C14N (#14203) 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 82f40860cfd..c80f9c3333c 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 514e22be636..5612874f5f3 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-- - +