From: e9925248 at stud4 dot tuwien dot ac dot at
Operating system: Windows 2000
PHP version: 4.3.2
PHP Bug Type: GD related
Bug description: Gif read support not thread safe
Description:
------------
If mod_php4 (precompiled from the web page), with php_gd2.dll extension
loaded, is used in Apache/1.3.27 on Windows 2000, createimagefromgif
returns black images or only parts of the image, if some pages call it at
the same time.
For example:
<?php
header ("Content-type: image/jpeg");
$im="image.gif";
$im1=imagecreatefromgif($im);
imagejpeg($im1);
?>
image.gif can be any gif, some KBs big.
Run in many terminal then something like
while /bin/true; do wget "http://server/skript.php"; done
only a part of the saved images will be ok. If only one images is fetched
at a time, all images are ok.
If the skript is used by many users, web browsers also show black images
or parts of the image.
I think, the error is in the bundled libgd, in gd_gif_in.c. There global
and static variables are used to read the gif, which all threads seem to
share. Removing them and storing them in a per Request state, seems to
solve the problem for me.
An example patch, which works for me, is at:
http://stud4.tuwien.ac.at/~e9925248/php/gd-gif.diff
Martin K�gler
[EMAIL PROTECTED]
Reproduce code:
---------------
<?php
header ("Content-type: image/jpeg");
$im="image.gif";
$im1=imagecreatefromgif($im);
imagejpeg($im1);
?>
Expected result:
----------------
The gif-image as jpeg
Actual result:
--------------
If some users use the script at the same time, the image has black parts.
--
Edit bug report at http://bugs.php.net/?id=24844&edit=1
--
Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=24844&r=trysnapshot4
Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=24844&r=trysnapshot5
Fixed in CVS: http://bugs.php.net/fix.php?id=24844&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=24844&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=24844&r=needtrace
Try newer version: http://bugs.php.net/fix.php?id=24844&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=24844&r=support
Expected behavior: http://bugs.php.net/fix.php?id=24844&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=24844&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=24844&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=24844&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=24844&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=24844&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=24844&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=24844&r=gnused