Patch bug73135.patch for XML related Bug #73135
Patch version 2016-10-16 06:56 UTC
Return to Bug #73135 |
Download this patch
Patch Revisions:
Developer: edgar.r.sandi@gmail.com
From f2a8a8c068995a5d780882c556cedd53bce3827d Mon Sep 17 00:00:00 2001
From: "Edgar R. Sandi" <edgar.r.sandi@gmail.com>
Date: Sat, 15 Oct 2016 23:58:35 -0300
Subject: [PATCH 1/3] fixes bug #73135
---
ext/xml/compat.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/ext/xml/compat.c b/ext/xml/compat.c
index 3fc203e..23db0ca 100644
--- a/ext/xml/compat.c
+++ b/ext/xml/compat.c
@@ -593,13 +593,13 @@ has been defined and none can be detected */
}
#endif
+ if (parser->parser->lastError.level >= XML_ERR_WARNING) {
+ return 0;
+ }
+
error = xmlParseChunk(parser->parser, (char *) data, data_len, is_final);
if (!error) {
return 1;
- } else if (parser->parser->lastError.level > XML_ERR_WARNING ){
- return 0;
- } else {
- return 1;
}
}
--
2.9.2
From 716676b6062881d051bbac71494e592527ef2a69 Mon Sep 17 00:00:00 2001
From: "Edgar R. Sandi" <edgar.r.sandi@gmail.com>
Date: Sun, 16 Oct 2016 01:06:23 -0200
Subject: [PATCH 2/3] phpt file to bug #73135
---
ext/xml/tests/bug73135.phpt | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 ext/xml/tests/bug73135.phpt
diff --git a/ext/xml/tests/bug73135.phpt b/ext/xml/tests/bug73135.phpt
new file mode 100644
index 0000000..5fb43e9
--- /dev/null
+++ b/ext/xml/tests/bug73135.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Bug #73135 (xml_parse() segmentation fault)
+--CREDITS--
+edgarsandi - <edgar.r.sandi@gmail.com>
+--FILE--
+<?php
+ function start_elem($parser, $xml) {
+ xml_parse($parser, $xml);
+ }
+
+ $xml = <<<HERE
+ <a xmlns="ahihi">
+ <bar foo="ahihi"/>
+ </a>
+HERE;
+
+ $parser = xml_parser_create_ns();
+ xml_set_element_handler($parser, 'start_elem', 'ahihi');
+ xml_parse($parser, $xml);
+?>
+--EXPECTF--
+Warning: xml_parse(): Unable to call handler ahihi() in %s%ebug73135.php on line %d
+
+Warning: xml_parse(): Unable to call handler ahihi() in %s%ebug73135.php on line %d
\ No newline at end of file
--
2.9.2
From 0f4655a1bcf9538ae26f8cfc46b1b72c327b2b45 Mon Sep 17 00:00:00 2001
From: "Edgar R. Sandi" <edgar.r.sandi@gmail.com>
Date: Sun, 16 Oct 2016 04:15:47 -0200
Subject: [PATCH 3/3] fixed bug generated by fixes bug #73135
---
ext/xml/compat.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/ext/xml/compat.c b/ext/xml/compat.c
index 23db0ca..d39afac 100644
--- a/ext/xml/compat.c
+++ b/ext/xml/compat.c
@@ -598,7 +598,9 @@ has been defined and none can be detected */
}
error = xmlParseChunk(parser->parser, (char *) data, data_len, is_final);
- if (!error) {
+ if (error) {
+ return 0;
+ } else {
return 1;
}
}
--
2.9.2
|