ID: 35367
User updated by: andrus at wap3 dot net
Reported By: andrus at wap3 dot net
Status: Open
-Bug Type: Class/Object related
+Bug Type: Scripting Engine problem
Operating System: Debian Linux
-PHP Version: 4.4.1
+PHP Version: 4.4.1 (also 5.1.0)
New Comment:
tested also on 5.1.0, same result
Previous Comments:
------------------------------------------------------------------------
[2005-11-27 10:22:06] andrus at wap3 dot net
bug was not just class related, but seems general recrussion related:
following code produced crash on 3 server i tested:
file1: test.php
<?php
error_reporting (E_ALL);
require ("test2.php");
$im_resize_res_max = '1600x1200';
$im_resize_res_min = '120x120';
resolution_check ("1x1", "2x2");
print "OK";
?>
file2: test2.php
<?php
/* check if $res1 is fits inside $res2 */
function resolution_check ($res1 = '', $res2 = '') {
global $im_resize_res_max, $im_resize_res_min;
if (!strchr ($res1, 'x') || !strchr ($res2, 'x')) //
invalid resolutions
return -1;
// check if not too big or too small image
if (resolution_check ($res1, $im_resize_res_max) != 1)
return -2;
if (resolution_check ($res1, $im_resize_res_min) == 1)
return -3;
list ($x1, $y1) = explode ('x', $res1, 2);
list ($x2, $y2) = explode ('x', $res2, 2);
$x1 = (int) $x1;
$x2 = (int) $x2;
$y1 = (int) $y1;
$y2 = (int) $y2;
if ($x1 <= 0 || $x2 <= 0 || $y1 <= 0 || $y2 <= 0) //
invalid
return -1;
if ($x2 >= $x1 && $y2 >= $y1) // match
return 1;
return 0;
}
?>
when i run test.php it never completes. same time if i copy this
function to same source file it worked.
Unfortunately i dont have gdb access right now. If you cannot reporduce
it i will deal with administration about it.
------------------------------------------------------------------------
[2005-11-24 16:19:01] [EMAIL PROTECTED]
Thank you for this bug report. To properly diagnose the problem, we
need a backtrace to see what is happening behind the scenes. To
find out how to generate a backtrace, please read
http://bugs.php.net/bugs-generating-backtrace.php
Once you have generated a backtrace, please submit it to this bug
report and change the status back to "Open". Thank you for helping
us make PHP better.
I can't see any crashes or exits with this code.
------------------------------------------------------------------------
[2005-11-24 15:55:11] andrus at wap3 dot net
Description:
------------
Function terminates while calling itself from itself inside class
Reproduce code:
---------------
make class:
class test {
function foo ($a = 0) {
$a++;
if ($a < 10)
$a = $this->foo ($a);
return $a;
}
}
use it:
$a = new test;
print $a->foo (1);
Expected result:
----------------
any result, not termination
Actual result:
--------------
php script terminates on $this->foo place
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35367&edit=1