ID: 25620
User updated by: xris at farcaster dot net
Reported By: xris at farcaster dot net
-Status: Feedback
+Status: Open
Bug Type: Scripting Engine problem
Operating System: GNU/Linux 2.4.20
PHP Version: 4.3.4-dev
New Comment:
So far i checked 600 methods, but could'nt find any
return's similar to your examples. What about these
constructs, are they known to cause heap corruption, too?
// Example 1
function &return_ref_constant() {
return FALSE; // or "return (1<2):"
}
// Example 2
function &a() {
return $b
}
function &return_ref_method() {
return $this->a();
}
// Example 3
function &return_ref_array() {
return array();
}
Yes, i know, some of them are "wrong".
Previous Comments:
------------------------------------------------------------------------
[2003-09-27 11:00:41] [EMAIL PROTECTED]
Seems to me the same issue addressed in bug #22510. I suspect you are
trying to return a value by reference that is not originated from a
variable somewhere in a function. That is,
function &return_ref_a() {
return $a + $b;
}
function &return_ref_b() {
return @$a;
}
function &return_ref_c() {
return -$a;
}
None of the above examples don't actually work, which are verified to
cause random heap corruption. Please check if such an error is
somewhere in your code.
------------------------------------------------------------------------
[2003-09-27 09:22:58] xris at farcaster dot net
Rechecked both strings; "SetVerband" is definitely a method (theres no
other usage of this string in the whole system), but "Bundesland" is a
variable (i replaced all '$Bundesland' variables with '$dnalsednuB').
I'll try to identify the
offending usage of this var, but there are 146 places where
such a variable name is used. In almost all cases, $Bundesland contains
a class, though..
------------------------------------------------------------------------
[2003-09-27 08:58:34] xris at farcaster dot net
> Don't you KNOW what that file has in it???
well.. actually.. it's not that simple.
As i stated on various occasions, our code is quite complex. We are
using a self-made on demand dynamic class loading system. But as you
mention it, i could propably modify the
class loader to generate one huge script containg the
complete code which would otherwise just be include()d.
To answer the question: i do have methods called like these,
but "Bundesland" might be an ordinary string, a var or
anything. i'll check, but i'm pretty sure it's a method.
- bison (GNU Bison) 1.35
- flex version 2.5.4
------------------------------------------------------------------------
[2003-09-27 08:43:22] [EMAIL PROTECTED]
"Most likely class methods" ?!?! Don't you KNOW what that file has in
it??? (in latter case, htdocs/sport/auswahl.php)
Put it online (as .txt) so we can actually see what's in it.
Also, what do these output:
# bison --version
# flex --version
------------------------------------------------------------------------
[2003-09-27 08:27:26] xris at farcaster dot net
> Put the zend_language_scanner.c file online somewhere,
http://farcaster.net/zend_language_scanner.c
Both "Bundesland" and "SetVerband" are most likely class methods.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/25620
--
Edit this bug report at http://bugs.php.net/?id=25620&edit=1