#23760 [Opn->WFx]: using virtual() causes segmentation faults

From: Date: Sat, 24 May 2003 01:53:23 +0000
Subject: #23760 [Opn->WFx]: using virtual() causes segmentation faults
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-40325@lists.php.net to get a copy of this message
ID: 23760 Updated by: sniper@php.net Reported By: php-general at pennysaverusa dot net -Status: Open +Status: Wont fix -Bug Type: Reproducible crash +Bug Type: Apache related Operating System: RedHat 7.3 PHP Version: 4.3.2RC4 New Comment: FYI: Using virtual() for this is absolutely useless, you really should be using include(). And as manual says: "virtual() cannot be used to include a document which is itself a PHP file." As otherwise the results are unpredictable.. (I didn't get any crash anyway) Previous Comments: ------------------------------------------------------------------------ [2003-05-23 20:38:23] php-general at pennysaverusa dot net OK. To reproduce this, please download: http://www2.pennysaverusa.com/barry/virtual_php_crash.tgz Tested on RC3 and RC4 and php4-STABLE-200305222330 all segfault. Notes: 1 unset session variable is _not_ enough to trigger the crash. 2 variables seems to be sufficient on my server. The head and footer files are plain html. I named them with .php out of habit. With .txt, it does not crash. I know php won't (or at least shouldn't) parse them as php when using virtual, so I see no reasonable excuse for it to crash. As I mentioned before, with DBG enabled or disabled, it still segfaults. Thanks, Barry Gould ------------------------------------------------------------------------ [2003-05-22 16:18:24] sniper@php.net Please provide a complete, self-contained script(s) so we can try and reproduce this ourselves. ------------------------------------------------------------------------ [2003-05-22 15:56:07] php-general at pennysaverusa dot net After making a mistake (forgetting to set a session variable), one of my pages started crashing apache ("child pid 7413 exit signal Segmentation fault (11)" in apache error log). After a lot of hair-pulling, it turns out that changing a virtual() statement to an include() statement fixes the segfaulting. There is no PHP code in the included file, only html & client-side JS. This is the error that _should_ display if it doesn't segfault: Notice: Undefined index: product in /var/www/html/mercury/order_review.php on line 122 line 122: <?=$_SESSION["product"];?> I tried using DBG, but it still segfaults! This happens in 4.3.2RC4 and RC3 Configure command: ./configure --with-mysql --with-gd --with-zlib-dir=/usr/lib --with-apxs=/usr/sbin/apxs --with-config-file-path=/etc --enable-sockets mysql is version 4.0.12 (mysql Ver 12.18 Distrib 4.0.12, for pc-linux (i686)) I tried following the backtrace instructions, but I am unable to get a core dump, and running inside of gdb doesn't seem to let me hit the webserver. Server is SMP (Dual P4 Xeon). Apache is apache-1.3.27-2 from RedHat's RPM. /usr/sbin/httpd -DHAVE_ACCESS -DHAVE_PROXY -DHAVE_AUTH_ANON -DHAVE_ACTIONS -DHAVE_ALIAS -DHAVE_ASIS -DHAVE_AUTH -DHAVE_AUTOINDEX -DHAVE_AUTH_DB -DHAVE_AUTH_DBM -DHAVE_PHP4 -DHAVE_CERN_META -DHAVE_CGI -DHAVE_DIGEST -DHAVE_DIR -DHAVE_ENV -DHAVE_EXAMPLE -DHAVE_EXPIRES -DHAVE_HEADERS -DHAVE_IMAP -DHAVE_INCLUDE -DHAVE_INFO -DHAVE_LOG_AGENT -DHAVE_LOG_CONFIG -DHAVE_LOG_REFERER -DHAVE_MIME -DHAVE_MIME_MAGIC -DHAVE_MMAP_STATIC -DHAVE_NEGOTIATION -DHAVE_REWRITE -DHAVE_SETENVIF -DHAVE_SPELING -DHAVE_STATUS -DHAVE_UNIQUE_ID -DHAVE_USERDIR -DHAVE_USERTRACK -DHAVE_VHOST_ALIAS -DHAVE_SSL Thanks, Barry Gould ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=23760&edit=1

« previous php.bugs (#40325) next »