diff options
author | Even Rouault <even.rouault@spatialys.com> | 2020-04-27 13:20:55 +0200 |
---|---|---|
committer | Even Rouault <even.rouault@spatialys.com> | 2020-04-27 13:20:55 +0200 |
commit | 8405704ebb9bcbe681825a2991f9fdb9088d0941 (patch) | |
tree | 683ba05c23ccab5dc33739272310e7f61295d765 | |
parent | c96a0232b7dd8cc16f3a80517e2e48d4d91ad5ce (diff) | |
download | libtiff-git-8405704ebb9bcbe681825a2991f9fdb9088d0941.tar.gz |
tif_jpeg.c: avoid potential division in previous fix (master only)
-rw-r--r-- | libtiff/tif_jpeg.c | 11 |
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 && |