summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2021-08-03 14:05:28 +0200
committerRemi Collet <remi@remirepo.net>2021-08-03 14:05:28 +0200
commitddeec06d2e8cc546c94aee53585aeec1cea8f741 (patch)
tree71aba54791bb1725f9dd8112c6339841d2e98d86
parent7ecad94f367254447f78609ec477ee9703296006 (diff)
add upstream patch for https://bugs.php.net/81325 segfault in simplexml
-rw-r--r--php-simplexml.patch49
-rw-r--r--php.spec7
2 files changed, 55 insertions, 1 deletions
diff --git a/php-simplexml.patch b/php-simplexml.patch
new file mode 100644
index 0000000..d444aa5
--- /dev/null
+++ b/php-simplexml.patch
@@ -0,0 +1,49 @@
+From 112527d67798b6e18ed1c639e66d8cff674dcfd8 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@php.net>
+Date: Tue, 3 Aug 2021 12:06:36 +0200
+Subject: [PATCH] Fix bug #81325 Segfault in zif_simplexml_import_dom
+
+---
+ ext/simplexml/simplexml.c | 2 +-
+ ext/simplexml/tests/bug81325.phpt | 19 +++++++++++++++++++
+ 2 files changed, 20 insertions(+), 1 deletion(-)
+ create mode 100644 ext/simplexml/tests/bug81325.phpt
+
+diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c
+index 4ed41d758762..21e1190e681b 100644
+--- a/ext/simplexml/simplexml.c
++++ b/ext/simplexml/simplexml.c
+@@ -2635,7 +2635,7 @@ PHP_FUNCTION(simplexml_import_dom)
+ nodep = xmlDocGetRootElement((xmlDocPtr) nodep);
+ }
+
+- if (nodep->type == XML_ELEMENT_NODE) {
++ if (nodep && nodep->type == XML_ELEMENT_NODE) {
+ if (!ce) {
+ ce = sxe_class_entry;
+ fptr_count = NULL;
+diff --git a/ext/simplexml/tests/bug81325.phpt b/ext/simplexml/tests/bug81325.phpt
+new file mode 100644
+index 000000000000..b4010dd1f0c3
+--- /dev/null
++++ b/ext/simplexml/tests/bug81325.phpt
+@@ -0,0 +1,19 @@
++--TEST--
++BUg #81325 (segfault in zif_simplexml_import_dom)
++--SKIPIF--
++<?php
++if (!extension_loaded('simplexml')) die('skip simplexml not available');
++if (!extension_loaded('dom')) die('skip simplexml not available');
++?>
++--FILE--
++<?php
++$dom = new DOMDocument;
++$dom->loadXML("foo");
++$xml = simplexml_import_dom($dom);
++?>
++Done
++--EXPECTF--
++Warning: DOMDocument::loadXML(): Start tag expected%s
++
++Warning: simplexml_import_dom(): Invalid Nodetype%s
++Done
diff --git a/php.spec b/php.spec
index c51afd3..73a1644 100644
--- a/php.spec
+++ b/php.spec
@@ -104,7 +104,7 @@
Summary: PHP scripting language for creating dynamic web sites
Name: %{?scl_prefix}php
Version: %{upver}%{?rcver:~%{rcver}}%{?gh_date:.%{gh_date}}
-Release: 1%{?dist}
+Release: 2%{?dist}
# All files licensed under PHP version 3.01, except
# Zend is licensed under Zend
# TSRM is licensed under BSD
@@ -168,6 +168,7 @@ Patch47: php-8.0.0-phpinfo.patch
Patch91: php-7.2.0-oci8conf.patch
# Upstream fixes (100+)
+Patch100: php-simplexml.patch
# Security fixes (200+)
@@ -936,6 +937,7 @@ sed -e 's/php-devel/%{?scl_prefix}php-devel/' -i scripts/phpize.in
%patch91 -p1 -b .remi-oci8
# upstream patches
+%patch100 -p1 -b .segfault
# security patches
@@ -1809,6 +1811,9 @@ fi
%changelog
+* Tue Aug 3 2021 Remi Collet <remi@remirepo.net> - 8.0.9-2
+- add upstream patch for https://bugs.php.net/81325 segfault in simplexml
+
* Thu Jul 29 2021 Remi Collet <remi@remirepo.net> - 8.0.9-1
- Update to 8.0.9 - http://www.php.net/releases/8_0_9.php