summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-04-27 13:20:55 +0200
committerEven Rouault <even.rouault@spatialys.com>2020-04-27 13:20:55 +0200
commit8405704ebb9bcbe681825a2991f9fdb9088d0941 (patch)
tree683ba05c23ccab5dc33739272310e7f61295d765
parentc96a0232b7dd8cc16f3a80517e2e48d4d91ad5ce (diff)
downloadlibtiff-git-8405704ebb9bcbe681825a2991f9fdb9088d0941.tar.gz
tif_jpeg.c: avoid potential division in previous fix (master only)
-rw-r--r--libtiff/tif_jpeg.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libtiff/tif_jpeg.c b/libtiff/tif_jpeg.c
index d9360abc..74fbb16e 100644
--- a/libtiff/tif_jpeg.c
+++ b/libtiff/tif_jpeg.c
@@ -1212,10 +1212,13 @@ JPEGPreDecode(TIFF* tif, uint16 s)
for (ci = 0; ci < sp->cinfo.d.num_components; ci++) {
const jpeg_component_info *compptr = &(sp->cinfo.d.comp_info[ci]);
- nRequiredMemory += (toff_t)(
- ((compptr->width_in_blocks + compptr->h_samp_factor - 1) / compptr->h_samp_factor)) *
- ((compptr->height_in_blocks + compptr->v_samp_factor - 1) / compptr->v_samp_factor) *
- sizeof(JBLOCK);
+ if( compptr->h_samp_factor > 0 && compptr->v_samp_factor > 0 )
+ {
+ nRequiredMemory += (toff_t)(
+ ((compptr->width_in_blocks + compptr->h_samp_factor - 1) / compptr->h_samp_factor)) *
+ ((compptr->height_in_blocks + compptr->v_samp_factor - 1) / compptr->v_samp_factor) *
+ sizeof(JBLOCK);
+ }
}
if( sp->cinfo.d.mem->max_memory_to_use > 0 &&