summaryrefslogtreecommitdiffstats
path: root/generic/tkImgGIF.c
diff options
context:
space:
mode:
authordkf <dkf@noemail.net>2003-02-18 14:03:45 (GMT)
committerdkf <dkf@noemail.net>2003-02-18 14:03:45 (GMT)
commitfa70e180d1e07e0428344c933b17056e2e31c3dd (patch)
tree4e75c6657880609b0fc3106856cdffdc69c62915 /generic/tkImgGIF.c
parenteb755c3b8794800517fa9cc7c3079a56d3f0d79c (diff)
downloadtk-fa70e180d1e07e0428344c933b17056e2e31c3dd.zip
tk-fa70e180d1e07e0428344c933b17056e2e31c3dd.tar.gz
tk-fa70e180d1e07e0428344c933b17056e2e31c3dd.tar.bz2
* generic/tkImgGIF.c (FileReadGIF): Ensure that the trashBuffer is
always deallocated on function exit to stop a potential memory leak. FossilOrigin-Name: e8d1555cacdd77f35ca4e46ca87ef5771f1401af
Diffstat (limited to 'generic/tkImgGIF.c')
-rw-r--r--generic/tkImgGIF.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/generic/tkImgGIF.c b/generic/tkImgGIF.c
index e952afb..b34365e 100644
--- a/generic/tkImgGIF.c
+++ b/generic/tkImgGIF.c
@@ -29,7 +29,7 @@
* | provided "as is" without express or implied warranty. |
* +-------------------------------------------------------------------+
*
- * RCS: @(#) $Id: tkImgGIF.c,v 1.22 2002/08/08 09:35:08 hobbs Exp $
+ * RCS: @(#) $Id: tkImgGIF.c,v 1.23 2003/02/18 14:03:46 dkf Exp $
*/
/*
@@ -424,13 +424,6 @@ FileReadGIF(interp, chan, fileName, format, imageHandle, destX, destY,
continue;
}
- /*
- * If a trash buffer has been allocated, free it now.
- */
- if (trashBuffer != NULL) {
- ckfree((char *)trashBuffer);
- trashBuffer = NULL;
- }
if (BitSet(buf[8], LOCALCOLORMAP)) {
if (!ReadColorMap(chan, bitPixel, colorMap)) {
Tcl_AppendResult(interp, "error reading color map",
@@ -485,6 +478,12 @@ FileReadGIF(interp, chan, fileName, format, imageHandle, destX, destY,
TK_PHOTO_COMPOSITE_SET);
noerror:
+ /*
+ * If a trash buffer has been allocated, free it now.
+ */
+ if (trashBuffer != NULL) {
+ ckfree((char *)trashBuffer);
+ }
if (block.pixelPtr) {
ckfree((char *) block.pixelPtr);
}
@@ -492,11 +491,16 @@ FileReadGIF(interp, chan, fileName, format, imageHandle, destX, destY,
return TCL_OK;
error:
+ /*
+ * If a trash buffer has been allocated, free it now.
+ */
+ if (trashBuffer != NULL) {
+ ckfree((char *)trashBuffer);
+ }
if (block.pixelPtr) {
ckfree((char *) block.pixelPtr);
}
return TCL_ERROR;
-
}
/*