cvs: ZendEngine2(PHP_5_3) / zend_object_handlers.c /tests bug48248.phpt
[email protected] ("Felipe Pena") Tue, 12 May 2009 22:55:06 -0000
| Newsgroups | php.zend-engine.cvs |
|---|---|
| Message-ID | <cvsfelipe1242168906@cvsserver> |
felipe Tue May 12 22:55:06 2009 UTC
Added files: (Branch: PHP_5_3)
/ZendEngine2/tests bug48248.phpt
Modified files:
/ZendEngine2 zend_object_handlers.c
Log:
- MFH: Fixed bug #48248 (SIGSEGV when access to private property via &__get)
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_object_handlers.c?r1=1.135.2.6.2.22.2.26&r2=1.135.2.6.2.22.2.27&diff_format=u
Index: ZendEngine2/zend_object_handlers.c
diff -u ZendEngine2/zend_object_handlers.c:1.135.2.6.2.22.2.26 ZendEngine2/zend_object_handlers.c:1.135.2.6.2.22.2.27
--- ZendEngine2/zend_object_handlers.c:1.135.2.6.2.22.2.26 Wed Jan 14 10:28:22 2009
+++ ZendEngine2/zend_object_handlers.c Tue May 12 22:55:05 2009
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_object_handlers.c,v 1.135.2.6.2.22.2.26 2009/01/14 10:28:22 dmitry Exp $ */
+/* $Id: zend_object_handlers.c,v 1.135.2.6.2.22.2.27 2009/05/12 22:55:05 felipe Exp $ */
#include "zend.h"
#include "zend_globals.h"
@@ -578,8 +578,8 @@
zend_guard *guard;
if (!zobj->ce->__get ||
- zend_get_property_guard(zobj, property_info, member, &guard) != SUCCESS ||
- guard->in_get) {
+ zend_get_property_guard(zobj, property_info, member, &guard) != SUCCESS ||
+ (property_info && guard->in_get)) {
/* we don't have access controls - will just add it */
new_zval = &EG(uninitialized_zval);
http://cvs.php.net/viewvc.cgi/ZendEngine2/tests/bug48248.phpt?view=markup&rev=1.1
Index: ZendEngine2/tests/bug48248.phpt
+++ ZendEngine2/tests/bug48248.phpt
--TEST--
Bug #48248 (SIGSEGV when access to private property via &__get)
--FILE--
<?php
class A
{
public function & __get($name)
{
return $this->test;
}
}
class B extends A
{
private $test;
}
$b = new B;
var_dump($b->test);
?>
--EXPECTF--
Notice: Undefined property: B::$test in %s on line %d
Notice: Only variable references should be returned by reference in %s on line %d
NULL