diff options
author | Frank Warmerdam <warmerdam@pobox.com> | 2002-08-15 12:59:25 +0000 |
---|---|---|
committer | Frank Warmerdam <warmerdam@pobox.com> | 2002-08-15 12:59:25 +0000 |
commit | e73fae909d20ab564459eb30b315dbf5b7f3375d (patch) | |
tree | e7e71b2a88587791691aaaa66902aa098f0999d2 /libtiff/tif_close.c | |
parent | 5cf069740135d9eec02964e812eaf25356def691 (diff) | |
download | libtiff-git-e73fae909d20ab564459eb30b315dbf5b7f3375d.tar.gz |
cleanup anonymous field memory as per bug 169
Diffstat (limited to 'libtiff/tif_close.c')
-rw-r--r-- | libtiff/tif_close.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/libtiff/tif_close.c b/libtiff/tif_close.c index 4d64f2fd..8a6065af 100644 --- a/libtiff/tif_close.c +++ b/libtiff/tif_close.c @@ -1,4 +1,4 @@ -/* $Header: /cvs/maptools/cvsroot/libtiff/libtiff/tif_close.c,v 1.3 2002-04-03 20:13:31 warmerda Exp $ */ +/* $Header: /cvs/maptools/cvsroot/libtiff/libtiff/tif_close.c,v 1.4 2002-08-15 12:59:25 warmerda Exp $ */ /* * Copyright (c) 1988-1997 Sam Leffler @@ -55,7 +55,23 @@ TIFFClose(TIFF* tif) if (isMapped(tif)) TIFFUnmapFileContents(tif, tif->tif_base, tif->tif_size); (void) TIFFCloseFile(tif); - if (tif->tif_fieldinfo) + if (tif->tif_nfields > 0) + { + int i; + + for (i = 0; i < tif->tif_nfields; i++) + { + TIFFFieldInfo *fld = tif->tif_fieldinfo[i]; + if (fld->field_bit == FIELD_CUSTOM && + strncmp("Tag ", fld->field_name, 4) == 0) + { + _TIFFfree(fld->field_name); + _TIFFfree(fld); + } + } + _TIFFfree(tif->tif_fieldinfo); + } + _TIFFfree(tif); } |