php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #30348 GD imagegif temp files not removed
Submitted: 2004-10-07 03:28 UTC Modified: 2006-05-05 09:16 UTC
Votes:11
Avg. Score:4.7 ± 0.4
Reproduced:11 of 11 (100.0%)
Same Version:4 (36.4%)
Same OS:3 (27.3%)
From: phpsupport at shopandlearn dot net Assigned: pajoye (profile)
Status: Not a bug Package: GD related
PHP Version: 5.0.2 OS: Windows XP with SP2
Private report: No CVE-ID: None
 [2004-10-07 03:28 UTC] phpsupport at shopandlearn dot net
Description:
------------
After using the script included with this report, I find temp files in my root directory with names in hexidecimal numbers. (examples: 137.tmp and 13A.tmp) I renamed one file from 137.tmp to 137.gif and it displayed as the same image that the script created.

I found that if I remeove the line containing imagegif() from the script, I do not get the unwanted temp files.

I also found that if I output as imagegif() or imagejpeg(), I don't get the unwanted temp files.

This leads me to believe that the problem is in the imagegif() function.


My Computer is:
Windows XP with Service Pack 2
MB: Intel D850GB
Processor: Intel P4 1.6GHZ
RAM: 512 MB

Apache 2.0.52
PHP 5.0.2 with php_gd2.dll (5.0.2.2) & php_mysql.dll


Reproduce code:
---------------
<?php
# This function creates an image of a number
# Tested using PHP 5.0.2 and the included GD2 dll
header ("Content-type: image/gif"); 
$font = 3;
$number = $_REQUEST['no'];
$width = (strlen($number) * 8)+1; # Make counter only as wide as input
$im = @imagecreate($width, 16)              # ($width, $height)
     or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 255, 255, 255); # ($image, $r, $g, $b)
$line_color = imagecolorallocate($im, 200, 200, 200); # ($image, $r, $g, $b)
for ($x=8;$x<($width-5);$x+=7){ # draw vertical lines between numbers (for counter reel effect)
  imageline($im, $x, 0, $x, 20, $line_color);
}
imagestring($im, $font, 2, 1,  $number, $text_color);        # ($image, $font, $x, $y, $color)
imagegif($im);
imagedestroy($im);
?>

Expected result:
----------------
I expect it to execute and show an image in the browser. I also expect the script to delete any tempory files it creates.

Actual result:
--------------
The script does what is expected with the exception of leaving the unwanted temp files.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-10-13 22:28 UTC] mcnuke at gmx dot net
Same problem here on linux, but filenames are different.

directory /tmp:
-rw-------   1 www-data nogroup  7102 2004-10-13 19:46 Cx9IW8
-rw-------   1 www-data nogroup  7102 2004-10-13 19:46 eTyrwb
-rw-------   1 www-data nogroup  7679 2004-10-13 16:50 gGdslp

System:
Debian 3.1 (kernel 2.6.7)
GD 2.0.28
PHP 5.0.2
Apache 2.0.51
 [2004-10-14 01:04 UTC] iliaa@php.net
Are you using bundled libgd?
 [2004-10-18 12:09 UTC] mcnuke at gmx dot net
no, it's self-compiled (without any warnings)
 [2004-10-18 12:46 UTC] tony2001@php.net
So try the bundled one first.
 [2004-10-18 23:49 UTC] mcnuke at gmx dot net
I just tried that and it does not help. There are still temp files left in /tmp after I started scripts having image-functions.
 [2004-10-26 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2004-11-20 15:15 UTC] mario at huelsenitz dot de
On my Linux Suse 8.1 with PHP 4.3.9 an the bundle GD is the same. Files are not removed from the temp.
 [2004-12-06 20:35 UTC] player0 at liquidninjas dot com
I got this bug upgrading from 4.3.7 to 4.3.9 on Windows 2003 Server running Apache2 2.0.52, using the included GD libraries.  It starts dumping xx.tmp files on my root directory. Had to go back to 4.3.7 cause I use GD a lot and it was making a serious mess.
 [2005-07-22 05:25 UTC] bkfake-temp at yahoo dot com
No feedback?  Here's some:

I've got a slew of tmp files lingering around..

PHP 5.0.4  w/ bundled GD
Win XP SP2

same as bug 30696?  which was closed...
 [2005-08-02 09:44 UTC] abyss at m3ezw dot co dot uk
I have this same problem. .gif leaves behind a .tmp file but .jpeg and .png do not. This is annoying because .jpeg is too low in quality but .png is too high in size to use. .gif is perfect match of both.

Please fix the bug!
 [2005-10-05 14:10 UTC] ferdi at cybersolutions dot nl
Same problem here.
I use Redhat ES 4 with php-gd-4.3.9-3.7
/tmp is filled with temp files.
Even when I call imagedestroy().
 [2006-05-05 08:07 UTC] julien dot buratto at linkas dot it
Have the same problem on Cobalt Raq 550 running Linux PHP 4.3.9.
Using ImageGif don't delete the file in the tmp.
Two files for each gif are created here.
Using ImagePng is ok.
 [2006-05-05 09:16 UTC] pajoye@php.net
Thank you for taking the time to report a problem with PHP.
Unfortunately you are not using a current version of PHP -- 
the problem might already be fixed. Please download a new
PHP version from http://www.php.net/downloads.php

If you are able to reproduce the bug with one of the latest
versions of PHP, please change the PHP version on this bug report
to the version you tested and change the status back to "Open".
Again, thank you for your continued support of PHP.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat May 04 02:01:29 2024 UTC