PHP segmentation fault caused by php while loop

php, segmentation-fault

Solution

Wikipedia: Segmentation Fault

A little bit of research indicates that some PHP extensions may not play nice, or may not play nice with each other. It can also depend on the server, or the server configuration.

If you are using both XDebug and Zend Debugger loaded at the same time it can cause this.

At first I thought possibly the while loop used with a die() statement might be part of the cause.. I am curious to know if this also causes a segmentation error:

while (!$fault) { 
  $fault=check_fault_function();
  }
if ($fault) { die('dd'); }

If not it may be just how you are using while and die together. As you know while(1) {} is an infinite loop... (your server may not know how to allocate memory for infinite routines) so unless you are trying to cause crashes this is normally bad practice.

Problem

I discovered a way to make php segfault, and I'm a bit curious about what's happening. Maybe someone can explain this for me? ``` joern@xps:..com/trunk5/tools/nestedset> cat > while.php <?php while(1){ die('dd'); } ?> ^C 0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php ddzsh: segmentation fault php -f while.php 0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php dd% 0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php dd% 0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php ddzsh: segmentation fault php -f while.php 0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php ddzsh: segmentation fault php -f while.php 0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php dd% 0 joern@xps:..com/trunk5/tools/nestedset> php -f while.php dd% ``` As you can see, it doesn't happen every time. Php caching? ``` php5 5.2.10.dfsg.1-2ubuntu6.1 ```

Original source