diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2018-09-22 23:12:50 +0200 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2018-09-22 23:12:50 +0200 |
| commit | aaf48ee6bae91032f025f9ac11592c4085a0d96b (patch) | |
| tree | 9675ce6d7c7a842c1d14fbc4316f71bc996044ee /src | |
| parent | ee827ad3f32469d4854b2da71c9703a2af359f9f (diff) | |
| parent | cc3824767bde397fedb8a1ae4786a222ba860c8d (diff) | |
Merge branch 'pr1095'
Diffstat (limited to 'src')
| -rw-r--r-- | src/bin/mj2/opj_mj2_extract.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/bin/mj2/opj_mj2_extract.c b/src/bin/mj2/opj_mj2_extract.c index f55eb66f..74fbedaf 100644 --- a/src/bin/mj2/opj_mj2_extract.c +++ b/src/bin/mj2/opj_mj2_extract.c @@ -145,10 +145,21 @@ int main(int argc, char *argv[]) fread(frame_codestream, sample->sample_size - 8, 1, file); /* Assuming that jp and ftyp markers size do*/ - sprintf(outfilename, "%s_%05d.j2k", argv[2], snum); + { + int num = snprintf(outfilename, sizeof(outfilename), + "%s_%05d.j2k", argv[2], + snum); + if (num >= sizeof(outfilename)) { + fprintf(stderr, "maximum length of output prefix exceeded\n"); + free(frame_codestream); + return 1; + } + } + outfile = fopen(outfilename, "wb"); if (!outfile) { fprintf(stderr, "failed to open %s for writing\n", outfilename); + free(frame_codestream); return 1; } fwrite(frame_codestream, sample->sample_size - 8, 1, outfile); |
