com php-src: Fixed bug #71221 (Null pointer deref (segfault) in get_defined_vars via ob_start): NEWS Zend/tes ts/bug71221.phpt
Zend/zend_builtin_functions .c
| From: | Xinchen Hui | Date: | Sat, 26 Dec 2015 04:32:26 +0000 |
| Subject: | com php-src: Fixed bug #71221 (Null pointer deref (segfault) in get_defined_vars via ob_start): NEWS Zend/tes ts/bug71221.phpt Zend/zend_builtin_functions .c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-90462@lists.php.net to get a copy of this message | ||
Commit: 6700be67f58611d08bbacc44f327ce98ed0473c9
Author: Xinchen Hui <laruence@gmail.com> Fri, 25 Dec 2015 20:31:37 -0800
Parents: 2a7eeff33e6b798c0b36a0a0e52fbf8c3197f4e9
Branches: PHP-7.0 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=6700be67f58611d08bbacc44f327ce98ed0473c9
Log:
Fixed bug #71221 (Null pointer deref (segfault) in get_defined_vars via ob_start)
Bugs:
https://bugs.php.net/71221
Changed paths:
M NEWS
A Zend/tests/bug71221..phpt
M Zend/zend_builtin_functions.c
Diff:
diff --git a/NEWS b/NEWS
index ce1bf50..776f289 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ PHP NEWS
?? ??? 2016 PHP 7.0.3
- Core:
+ . Fixed bug #71221 (Null pointer deref (segfault) in get_defined_vars via
+ ob_start).. (hugh at allthethings dot co dot nz)
. Fixed bug #71201 (round() segfault on 64-bit builds). (Anatol)
. Added support for new HTTP 451 code. (Julien)
diff --git a/Zend/tests/bug71221.phpt b/Zend/tests/bug71221.phpt
new file mode 100644
index 0000000..e735302
--- /dev/null
+++ b/Zend/tests/bug71221.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Bug #71221 (Null pointer deref (segfault) in get_defined_vars via ob_start)
+--FILE--
+<?php
+ob_start("get_defined_vars");
+ob_end_clean();
+?>
+okey
+--EXPECT--
+okey
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index 6faa57c..785632d 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -1947,6 +1947,10 @@ ZEND_FUNCTION(get_defined_vars)
{
zend_array *symbol_table = zend_rebuild_symbol_table();
+ if (UNEXPECTED(symbol_table == NULL)) {
+ return;
+ }
+
RETURN_ARR(zend_array_dup(symbol_table));
}
/* }}} */