diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2017-08-21 23:21:39 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2017-09-01 10:26:53 +0200 |
| commit | aa7198146b995fe2993ce24f5715057b7da0386d (patch) | |
| tree | 44223bd47d38203495febb3fe3f4e9ee47a9cdea /src/bin/jp2 | |
| parent | 0a25dceca7761ee3f16cbb2ced87b915a948b25e (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.c | 5 |
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"); |
