|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-04-29 21:26 UTC] php at fiddaman dot net
Description:
------------
PHP crashes in imagettftext - worked fine in 4.3.10
./configure \
--prefix=/opt/php \
--with-exec-dir=/opt/php/bin \
--with-apxs2=/opt/apache/bin/apxs \
--enable-memory-limit \
--with-iconv \
--enable-ftp \
--enable-mbstring \
--with-mbstring=all \
--with-gettext \
--enable-calendar \
--with-mime-magic \
--with-mysql \
--with-mysqli=/opt/mysql/bin/mysql_config \
\
--with-openssl=/opt/openssl \
--with-mysql=/opt/mysql \
--with-gdbm=/opt/GNUgdbm \
--with-db4=/opt/newdb \
--with-dom=/opt/libxml2 \
--with-gmp=/opt/GNUmp \
--with-mcrypt=/opt/libmcrypt \
\
--with-imap=/opt/c-client \
--with-imap-ssl=/opt/openssl \
\
--with-zlib=/usr \
--with-zlib-dir=/usr \
--with-bz2=/usr \
\
--with-gd \
--with-jpeg-dir=/opt/libjpg \
--with-png-dir=/opt/libpng \
--with-freetype-dir=/opt/freetype
Reproduce code:
---------------
<?php
$img = imagecreate(400, 70);
$font_colour = imagecolorallocate($img, 0, 0x50, 0);
imagettftext($img, 11/81*64, 0, 0, 27,
"$font_colour", "/tmp/federation.ttf",
"test");
imagedestroy($img);
?>
Expected result:
----------------
No errors.
Actual result:
--------------
#0 0x00000001001a70b4 in zend_parse_va_args (num_args=4,
type_spec=0x10023cd7b "lllss|a", va=0xffffffff7fffe898, flags=0)
at /spool/src/build/php-4.3.11/Zend/zend_API.c:260
#1 0x00000001001a7b18 in zend_parse_parameters (num_args=8,
type_spec=0x10023cd78 "rddlllss|a")
at /spool/src/build/php-4.3.11/Zend/zend_API.c:552
#2 0x0000000100071a7c in php_imagettftext_common (ht=8,
return_value=0x10061dd28, this_ptr=0x0, return_value_used=0, mode=0,
extended=0) at /spool/src/build/php-4.3.11/ext/gd/gd.c:3042
#3 0x00000001001bb0c4 in execute (op_array=0x10063b2a8)
at /spool/src/build/php-4.3.11/Zend/zend_execute.c:1654
#4 0x00000001001a64b0 in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /spool/src/build/php-4.3.11/Zend/zend.c:926
#5 0x0000000100173ba0 in php_execute_script (primary_file=0xffffffff7ffffaa0)
at /spool/src/build/php-4.3.11/main/main.c:1745
#6 0x00000001001c3f08 in main (argc=2, argv=0xffffffff7ffffb98)
at /spool/src/build/php-4.3.11/sapi/cli/php_cli.c:828
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Oct 26 09:00:01 2025 UTC |
Same result with the snapshot: Starting program: /spool/src/build/php4-STABLE-200504301042/sapi/cli/php t Program received signal SIGSEGV, Segmentation fault. 0x00000001001a6df4 in zend_parse_va_args (num_args=4, type_spec=0x10023d1b3 "lllss|a", va=0xffffffff7fffe978, flags=0) at /spool/src/build/php4-STABLE-200504301042/Zend/zend_API.c:260 260 *p = Z_LVAL_PP(arg); it looks like a memory alignment problem, the SPARC MMU won't allow a 32 or 64-bit read that isn't aligned. I added this just before line 260: zend_printf("Alignment: %d\n", __alignof__(arg)); which gives: % sapi/cli/php t Alignment: 8 zsh: bus error (core dumped) sapi/cli/php tHere's a patch which fixes the problem. The variable being passed to the zend argument parser was too small to hold the result (int versus long). --- ext/gd/gd.c~ 2005-05-01 11:36:21.134419000 +0000 +++ ext/gd/gd.c 2005-05-01 11:42:37.369849000 +0000 @@ -3017,7 +3017,8 @@ { zval *IM, *EXT = NULL; gdImagePtr im=NULL; - int col = -1, x = -1, y = -1, str_len, fontname_len, i, brect[8]; + long col = -1, x = -1, y = -1; + int str_len, fontname_len, i, brect[8]; double ptsize, angle; unsigned char *str = NULL, *fontname = NULL; char *error = NULL; I'm using freetype 2.1.3 and gd 2.0.15 but it wasn't getting to even call a function in those libraries. A simpler test case which doesn't need the font file. It generates an error in 4.3.10 but still crashes the snapshot. % cat test <?php $img = imagecreate(400, 70); imagettftext($img, 11/81*64, 0, 0, 27, 0, "/dev/null", "test"); ?> % ./php4-STABLE-200504301042/sapi/cli/php test zsh: bus error (core dumped) ./php4-STABLE-200504301042/sapi/cli/php test % ./php-4.3.10/sapi/cli/php test PHP Warning: imagettftext(): Could not read font in /spool/src/build/test on line 3