Hi Johannes,

----- Original Message -----
From: "Johannes Schlüter"
Sent: Thursday, July 31, 2008

> Matt,
>
> On Tue, 2008-07-22 at 10:52 -0500, Matt Wilmas wrote:
> > Adding these two array functions has been on the TODO for a while,
>
> The patch can quite easily be tricked into an endless recursion of
> php_array_replace_recursive() calls which will segfault:
>
> $ php -r '$a = array(); $a[] = &$a; $b = array(); $b[] = &$b;
> array_replace_recursive($a, $b);'
> Segmentation fault
>
> Some other cases were covered by PHP's recursion detection:
>
> $ php -r '$a = array(); $a[1] = &$a; $b = array(); $b[2] = &$b;
> array_replace_recursive($a, $b, array(&$a, &$b), array(&$b, &$a));'
>
> Warning: array_replace_recursive(): recursion detected in Command line
> code on line 1
>
> Can you try to add a detection for the first case?

Ugh, I hate that reference/recursion stuff!  I have a hard time following
what's happening, and am not sure how some of those checks, etc. even work
in php_array_merge() (which I was working from). :-/  I tried changing a few
parts, and unfortunately couldn't fix it.  I will look at it further when I
have some more time, and will of course let you know if it's fixed.  Sorry.
:-(

Anyone else reading this and may be able to more easily see what's going
wrong? :^)

> johannes

- Matt


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to