On 01/30/2015 11:13 PM, Michael Wallner wrote:
> 
> On 31 Jan 2015 06:04, "Rasmus Lerdorf" <[email protected]
> <mailto:[email protected]>> wrote:
>>
>> There is something weird going on with PHP7 and the moodle_page class
>> and all its magic methods. It dies with a:
>>
>> /var/www/moodle/blocks/navigation/block_navigation.php(223) : Notice -
>> Undefined property: moodle_page::$navigation
>> /var/www/moodle/blocks/navigation/block_navigation.php(223) : Fatal
>> error - __clone method called on non-object
>>
>> That code is:
>>
>> 222   $this->page->navigation->initialise();
>> 223   return clone($this->page->navigation);
>>
>> See:
>>
> https://github.com/moodle/moodle/blob/master/blocks/navigation/block_navigation.php#L222-L223
>>
>> $this->page_navigation is created on that initial call through the
>> wonders of this magic:
>>
>> https://github.com/moodle/moodle/blob/master/lib/pagelib.php#L757-L772
>>
>> Which somehow leads us to read 8 bytes in a free'ed block:
>>
>> https://gist.github.com/anonymous/f9d1f53b1205d29d86cc
>>
>> but I am not having much luck dwindling it down to a simpler reproduce
>> case. If you know this code or have a couple of hours to spare, could
>> you see if you could reduce it to something more manageable for us?
>>
>> (and yes, same code is fine in 5.6)
>>
> 
> Here's a similar bug,  too: https://bugs.php.net/bug.php?id=68933&edit=1

Ah, good catch. Yes,
https://gist.github.com/arjenschol/3d94195ca51aa44db1c6 looks like a
similar pattern to what Moodle is doing in that part of the code that
seems to trigger this.

-Rasmus

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to