summaryrefslogtreecommitdiff
path: root/src/bin/jp2
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2017-08-21 23:21:39 +0200
committerEven Rouault <even.rouault@spatialys.com>2017-09-01 10:26:53 +0200
commitaa7198146b995fe2993ce24f5715057b7da0386d (patch)
tree44223bd47d38203495febb3fe3f4e9ee47a9cdea /src/bin/jp2
parent0a25dceca7761ee3f16cbb2ced87b915a948b25e (diff)
opj_compress: reorder checks related to code block dimensions, to avoid potential int overflow
Diffstat (limited to 'src/bin/jp2')
-rw-r--r--src/bin/jp2/opj_compress.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/bin/jp2/opj_compress.c b/src/bin/jp2/opj_compress.c
index 494b366a..ab07fbb5 100644
--- a/src/bin/jp2/opj_compress.c
+++ b/src/bin/jp2/opj_compress.c
@@ -907,8 +907,9 @@ static int parse_cmdline_encoder(int argc, char **argv,
case 'b': { /* code-block dimension */
int cblockw_init = 0, cblockh_init = 0;
sscanf(opj_optarg, "%d,%d", &cblockw_init, &cblockh_init);
- if (cblockw_init * cblockh_init > 4096 || cblockw_init > 1024
- || cblockw_init < 4 || cblockh_init > 1024 || cblockh_init < 4) {
+ if (cblockw_init > 1024 || cblockw_init < 4 ||
+ cblockh_init > 1024 || cblockh_init < 4 ||
+ cblockw_init * cblockh_init > 4096) {
fprintf(stderr,
"!! Size of code_block error (option -b) !!\n\nRestriction :\n"
" * width*height<=4096\n * 4<=width,height<= 1024\n\n");