diff options
author | dkf <dkf@noemail.net> | 2003-02-18 14:03:45 (GMT) |
---|---|---|
committer | dkf <dkf@noemail.net> | 2003-02-18 14:03:45 (GMT) |
commit | fa70e180d1e07e0428344c933b17056e2e31c3dd (patch) | |
tree | 4e75c6657880609b0fc3106856cdffdc69c62915 /generic/tkImgGIF.c | |
parent | eb755c3b8794800517fa9cc7c3079a56d3f0d79c (diff) | |
download | tk-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.c | 22 |
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; - } /* |