From: Operating system: Mac OS X 10.7.2 PHP version: 5.4.0RC3 Package: Reproducible crash Bug Type: Bug Bug description:using bad GD color in __destruct crashes
Description: ------------ Allocating a color with imagecolorallocate using null for the image, and calling die() causes a repeatable crash if the destructor attempts to use the bad color to render an image. './configure' '--prefix=/usr' '--mandir=/usr/share/man' '-- infodir=/usr/share/info' '--sysconfdir=/private/etc' '--with- apxs2=/usr/sbin/apxs' '--enable-cli' '--with-config-file-path=/etc' '--with- libxml-dir=/usr' '--with-openssl=/usr' '--with-kerberos=/usr' '--with-zlib=/usr' '--enable-bcmath' '--with-bz2=/usr' '--enable-calendar' '--with-curl=/usr' '-- enable-exif' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/usr/local' '--with- png-dir=/usr/local' '--enable-gd-native-ttf' '--with-ldap=/usr' '--with-ldap- sasl=/usr' '--enable-mbstring' '--enable-mbregex' '--with-mysql=mysqlnd' '-- with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-mysql- sock=/tmp/mysql.sock' '--with-iodbc=/usr' '--enable-shmop' '--with-snmp=/usr' '- -enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '-- enable-sysvshm' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr' '-- enable-zip' '--with-pcre-regex' '--disable-cgi' '--enable-debug' '--with- freetype-dir=/usr/local' '--with-mcrypt' '--with-libedit' $ diff php.ini.default php.ini 440c440 < max_execution_time = 30 --- > max_execution_time = 420 450c450 < max_input_time = 60 --- > max_input_time = 120 458c458 < memory_limit = 128M --- > memory_limit = 1024M 531c531 < display_errors = Off --- > display_errors = On 542c542 < display_startup_errors = Off --- > display_startup_errors = On 604c604 < html_errors = Off --- > html_errors = On 728c728 < post_max_size = 8M --- > post_max_size = 20M 784c784 < ;include_path = ".:/php/includes" --- > include_path = ".:/usr/lib/php" 879c879 < upload_max_filesize = 2M --- > upload_max_filesize = 20M 977,978c977,978 < ; The MIBS data available in the PHP distribution must be installed. < ; See http://www.php.net/manual/en/snmp.installation.php --- > ; The MIBS data available in the PHP distribution must be installed. > ; See http://www.php.net/manual/en/snmp.installation.php 998c998 < ;date.timezone = --- > date.timezone = "America/Chicago" 1596c1596 < session.entropy_length = 0 --- > session.entropy_length = 20 1601c1601 < ; On windows, setting the entropy_length setting will activate the --- > ; On windows, setting the entropy_length setting will activate the 1603c1603 < ;session.entropy_file = /dev/urandom --- > session.entropy_file = /dev/random 1634c1634 < session.hash_function = 0 --- > session.hash_function = 1 1901,1902c1901,1904 < ;xdebug.idekey="macgdbp" < ;xdebug.remote_enable=1 --- > zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so > xdebug.idekey="macgdbp" > xdebug.remote_enable=On > xdebug.default_enable=On Test script: --------------- <?php class Foo { protected $background; public function __construct() { $this->background = imagecolorallocate(null, 255, 255, 255); } public function __destruct() { $img = imagecreatetruecolor(50, 50); imagefill($img, 0, 0, $this->background); header('Content-type: image/png'); imagepng($img); } } new Foo(); ?> Expected result: ---------------- Expected an error message, warning, magical success, or some other non-crashing result Actual result: -------------- Program received signal SIGABRT, Aborted. 0x00007fff900fe82a in __kill () (gdb) bt #0 0x00007fff900fe82a in __kill () #1 0x00007fff8bc7aa9c in abort () #2 0x00007fff8bcd984c in free () #3 0x000000010172853f in php_request_shutdown (dummy=0x0) at main.c:1776 #4 0x00000001019bb67e in php_apache_request_dtor (r=0x100994aa0) at sapi_apache2.c:507 #5 0x00000001019bbf6f in php_handler (r=0x100994aa0) at sapi_apache2.c:679 #6 0x0000000100002551 in ap_run_handler () #7 0x00000001000030f6 in ap_invoke_handler () #8 0x000000010003daad in ap_process_request () #9 0x0000000100039723 in ap_process_http_connection () #10 0x0000000100019aa1 in ap_run_process_connection () #11 0x000000010001a081 in ap_process_connection () #12 0x0000000100046f53 in child_main () #13 0x0000000100047076 in make_child () #14 0x00000001000478b6 in ap_mpm_run () #15 0x000000010000d58d in main () Some relevant values from main.c around line 1776: last_error_lineno = 0 last_error_message = -1031267392 = /Volumes/Users/Users/bion/Sites/test/index2.php last_error_file = 6 -- Edit bug report at https://bugs.php.net/bug.php?id=60546&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=60546&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=60546&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=60546&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=60546&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=60546&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=60546&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=60546&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=60546&r=needscript Try newer version: https://bugs.php.net/fix.php?id=60546&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=60546&r=support Expected behavior: https://bugs.php.net/fix.php?id=60546&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=60546&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=60546&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=60546&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=60546&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=60546&r=dst IIS Stability: https://bugs.php.net/fix.php?id=60546&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=60546&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=60546&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=60546&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=60546&r=mysqlcfg