diff options
Diffstat (limited to 'third_party/libtiff/0021-fix-leaks-ojpegreaderinfosectables.patch')
-rw-r--r-- | third_party/libtiff/0021-fix-leaks-ojpegreaderinfosectables.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/third_party/libtiff/0021-fix-leaks-ojpegreaderinfosectables.patch b/third_party/libtiff/0021-fix-leaks-ojpegreaderinfosectables.patch new file mode 100644 index 0000000000..13aef44d91 --- /dev/null +++ b/third_party/libtiff/0021-fix-leaks-ojpegreaderinfosectables.patch @@ -0,0 +1,31 @@ +diff --git a/third_party/libtiff/tif_ojpeg.c b/third_party/libtiff/tif_ojpeg.c +index f69b00148..1a700d5bc 100644 +--- a/third_party/libtiff/tif_ojpeg.c ++++ b/third_party/libtiff/tif_ojpeg.c +@@ -1794,6 +1794,8 @@ OJPEGReadHeaderInfoSecTablesQTable(TIFF* tif) + _TIFFfree(ob); + return(0); + } ++ if(sp->qtable[m]!=0) ++ _TIFFfree(sp->qtable[m]); + sp->qtable[m]=ob; + sp->sof_tq[m]=m; + } +@@ -1861,6 +1863,8 @@ OJPEGReadHeaderInfoSecTablesDcTable(TIFF* tif) + _TIFFfree(rb); + return(0); + } ++ if(sp->dctable[m]!=0) ++ _TIFFfree(sp->dctable[m]); + sp->dctable[m]=rb; + sp->sos_tda[m]=(m<<4); + } +@@ -1928,6 +1932,8 @@ OJPEGReadHeaderInfoSecTablesAcTable(TIFF* tif) + _TIFFfree(rb); + return(0); + } ++ if(sp->actable[m]) ++ _TIFFfree(sp->actable[m]); + sp->actable[m]=rb; + sp->sos_tda[m]=(sp->sos_tda[m]|m); + } |