Re: segmentation fault when passing arguments by reference or importing global variables
| From: | Todd Ruth | Date: | Tue, 22 Feb 2005 03:37:26 +0000 |
| Subject: | Re: segmentation fault when passing arguments by reference or importing global variables | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-15142@lists.php.net to get a copy of this message | ||
Ahh... my favorite topic. I think I covered all the cases
our company has hit in the following message to this list:
http://marc.theaimsgroup.com/?l=php-dev&m=109631219107237&w=2
I've never seen a response as to whether there is hope for fixes
of these problems. I ended up hacking at an already very ugly
p*rl script (a language that shouldn't be mentioned on this list)
to look for attempts to use non-referencable things as references.
Unfortunately, not only is it in the language which must not be
named, but it also makes some assumptions about the code based on
company standards. I keep my fingers crossed that someone with
appropriate skills will write a tool to do the check right. The
problems can be painful to find. e.g.
function g() {
return NULL;
}
function h(&$x) {
$x = 5;
}
h(g());
can cause php to crash. (Don't bother trying to reproduce it
though. It only causes a crash with a _lot_ of other php code
with it to make things interesting.)
Good luck!
- Todd
On Mon, 2005-02-21 at 21:21 -0500, Michael Walter wrote:
> I've as well experienced this problem several times (in a medium-size
> code base).
>
> By returning-by-reference in the wrong places, do you mean something like
> function foo() { return 10;}
> $bar=&foo();
> I'm pretty convinced that even with "correct" (in that respect) code
> the crash still occurs.
>
> Michael
>
>
> On Mon, 21 Feb 2005 15:56:34 -0300, Martin Sarsale
> <martin.sarsale@tnsweb.com> wrote:
> > Derick Rethans wrote:
> >
> > > I've been noticing the same things, and still trying to figure out where
> > > it happens. It has most likely to do with returning-by-reference in the
> > > wrong places.
> >
> > What do you mean with returning by reference in the wrong places? could
> > you give me an example?
> >
> >
> > --
> > No virus found in this outgoing message.
> > Checked by AVG Anti-Virus.
> > Version: 7.0.300 / Virus Database: 266.2.0 - Release Date: 2/21/2005
> >
> > --
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>