Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2(PHP_5_3) / zend_object_handlers.c /tests bug48248.phpt

[email protected] (Jani Taskinen) Wed, 13 May 2009 02:40:59 +0300
Newsgroups php.zend-engine.cvs
Message-ID <[email protected]>
..which you did already. I was a bit too trigger happy. :D

--Jani



Jani Taskinen kirjoitti:
> The code crashes also in PHP_5_2, so please MFH there too.
> 
> --Jani
> 
> 
> Felipe Pena kirjoitti:
>> 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
>>
>>
>>
> 
>