#23122 [Fbk]: ImageTTFText causes segmentation fault while under Apache
| From: | eru@php.net | Date: | Wed, 30 Apr 2003 17:06:50 +0000 |
| Subject: | #23122 [Fbk]: ImageTTFText causes segmentation fault while under Apache | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-38853@lists.php.net to get a copy of this message | ||
ID: 23122
Updated by: eru@php.net
Reported By: 1413 at blargh dot com
Status: Feedback
Bug Type: GD related
Operating System: Debian Linux
PHP Version: 4.3.2-RC
New Comment:
Works for me now, no more segfaults.
Previous Comments:
------------------------------------------------------------------------
[2003-04-30 11:44:03] rasmus@php.net
I think I just fixed this issue. The bt doesn't look the same, but the
fact that it only happens on the second request would indicate that it
was getting a bogus cache pointer which is what I fixed. Someone
please verify that this doesn't happen under current CVS.
------------------------------------------------------------------------
[2003-04-25 05:48:34] sniper@php.net
Note: This happens on the 2nd run on same apache child.
------------------------------------------------------------------------
[2003-04-25 05:47:23] sniper@php.net
Reproduced with latest stable CVS:
(gdb) bt
#0 0x40442b0b in gdCacheGet (head=0x8409648, keydata=0xbfffca48) at
/usr/src/web/php/php4/ext/gd/libgd/gdcache.c:101
#1 0x40441c1a in gdImageStringFTEx (im=0x83faf24, brect=0xbfffcbbc,
fg=1,
fontlist=0x84034a4 "/usr/share/fonts/default/TrueType/arialbd.ttf",
ptsize=10, angle=1.5707963267948966, x=11,
y=150, string=0x8400524 "foobar", strex=0x0) at
/usr/src/web/php/php4/ext/gd/libgd/gdft.c:825
#2 0x40441a6b in gdImageStringFT (im=0x83faf24, brect=0xbfffcbbc,
fg=1,
fontlist=0x84034a4 "/usr/share/fonts/default/TrueType/arialbd.ttf",
ptsize=10, angle=1.5707963267948966, x=11,
y=150, string=0x8400524 "foobar") at
/usr/src/web/php/php4/ext/gd/libgd/gdft.c:767
#3 0x4042d36a in php_imagettftext_common (ht=8,
return_value=0x8403504, this_ptr=0x0, return_value_used=0, mode=0,
extended=0) at /usr/src/web/php/php4/ext/gd/gd.c:3058
#4 0x4042c822 in zif_imagettftext (ht=8, return_value=0x8403504,
this_ptr=0x0, return_value_used=0)
at /usr/src/web/php/php4/ext/gd/gd.c:2947
#5 0x405f5492 in execute (op_array=0x83fac7c) at
/usr/src/web/php/php4/Zend/zend_execute.c:1606
#6 0x405e1f64 in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /usr/src/web/php/php4/Zend/zend.c:864
#7 0x405a56b7 in php_execute_script (primary_file=0xbffff284) at
/usr/src/web/php/php4/main/main.c:1637
#8 0x405faa50 in apache_php_module_main (r=0x82e532c,
display_source_mode=0)
at /usr/src/web/php/php4/sapi/apache/sapi_apache.c:55
#9 0x405fbb78 in send_php (r=0x82e532c, display_source_mode=0,
filename=0x82e742c "/www/apache/htdocs/t.php")
at /usr/src/web/php/php4/sapi/apache/mod_php4.c:617
#10 0x405fbc02 in send_parsed_php (r=0x82e532c) at
/usr/src/web/php/php4/sapi/apache/mod_php4.c:632
#11 0x8054f09 in ap_invoke_handler () at md4.c:255
#12 0x806b0cf in process_request_internal () at md4.c:255
#13 0x806b13a in ap_process_request () at md4.c:255
#14 0x8061916 in child_main () at md4.c:255
#15 0x8061af5 in make_child () at md4.c:255
#16 0x8061c76 in startup_children () at md4.c:255
#17 0x806230d in standalone_main () at md4.c:255
#18 0x8062b9c in main () at md4.c:255
#19 0x4016c9cb in __libc_start_main (main=0x80627d8 <main>, argc=3,
argv=0xbffff694, init=0x804ed2c <_init>,
fini=0x8082e64 <_fini>, rtld_fini=0x4000aea0 <_dl_fini>,
stack_end=0xbffff68c)
at ../sysdeps/generic/libc-start.c:92
(gdb) list
96 {
97 int i = 0;
98 gdCache_element_t *elem, *prev = NULL, *prevprev = NULL;
99 void *userdata;
100
101 elem = head->mru;
102 while (elem)
103 {
104 if ((*(head->gdCacheTest)) (elem->userdata, keydata))
105 {
------------------------------------------------------------------------
[2003-04-09 22:00:50] 1413 at blargh dot com
No - I converted the script to:
<?
/* Vertial Label maker */
$in = $_SERVER['argv'][1];
$im = ImageCreate(14,150);
$cBlack = ImageColorAllocate($im, 0, 0, 0);
$cWhite = ImageColorAllocate($im, 255, 255, 255);
$cBlue = ImageColorAllocate($im, 100, 100, 255);
ImageTTFText($im, 10, 90, 11, 150, $cWhite,
"/var/www/prime/common/arialbd.ttf", $in);
Header("Content-type: image/png");
ImagePng($im);
ImageDestroy($im);
?>
and tried it hundreds of times without getting a segfault. When going
through Apache I get segfaults.
------------------------------------------------------------------------
[2003-04-09 21:16:14] iliaa@php.net
Can you replicate the problem using CLI sapi?
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/23122
--
Edit this bug report at http://bugs.php.net/?id=23122&edit=1