add upstream patch for https://bugs.php.net/81325 segfault in simplexml

This commit is contained in:
Remi Collet 2021-08-03 13:50:11 +02:00
parent e4aa62bfce
commit ed96d1d716
2 changed files with 55 additions and 1 deletions

49
php-simplexml.patch Normal file
View File

@ -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

View File

@ -68,7 +68,7 @@
Summary: PHP scripting language for creating dynamic web sites
Name: php
Version: %{upver}%{?rcver:~%{rcver}}
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
@ -120,6 +120,7 @@ Patch45: php-7.4.0-ldap_r.patch
Patch47: php-8.0.0-phpinfo.patch
# Upstream fixes (100+)
Patch100: php-simplexml.patch
# Security fixes (200+)
@ -716,6 +717,7 @@ in pure PHP.
%patch47 -p1 -b .phpinfo
# upstream patches
%patch100 -p1 -b .segfault
# security patches
@ -1527,6 +1529,9 @@ systemctl try-restart php-fpm.service >/dev/null 2>&1 || :
%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