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

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:
header ("Content-type: image/jpeg");
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:

Martin Kögler

Reproduce code:
header ("Content-type: image/jpeg");

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 [url][/url]
Try a CVS snapshot (php4): [url][/url]
Try a CVS snapshot (php5): [url][/url]
Fixed in CVS: [url][/url]
Fixed in release: [url][/url]
Need backtrace: [url][/url]
Try newer version: [url][/url]
Not developer issue: [url][/url]
Expected behavior: [url][/url]
Not enough info: [url][/url]
Submitted twice: [url][/url]
register_globals: [url][/url]
PHP 3 support discontinued: [url][/url]
Daylight Savings: [url][/url]
IIS Stability: [url][/url]
Install GNU Sed: [url][/url]