opj_mj2_extract: Avoid segfault for long filenames
authorszukw000 <szukw000@arcor.de>
Tue, 13 Mar 2018 17:11:54 +0000 (18:11 +0100)
committerEven Rouault <even.rouault@spatialys.com>
Sat, 22 Sep 2018 21:05:38 +0000 (23:05 +0200)
src/bin/mj2/opj_mj2_extract.c

index 9384dc6dbe52e12021f8305a34cf61c57c20067c..f55eb66f71434df07abac0c831fe3334f0837944 100644 (file)
@@ -82,7 +82,7 @@ int main(int argc, char *argv[])
     mj2_sample_t *sample;
     unsigned char* frame_codestream;
     FILE *file, *outfile;
-    char outfilename[50];
+    char outfilename[FILENAME_MAX];
     mj2_dparameters_t parameters;
 
     if (argc != 3) {
@@ -91,6 +91,11 @@ int main(int argc, char *argv[])
         return 1;
     }
 
+    if (strlen(argv[2]) + 11 > sizeof(outfilename)) {
+        fprintf(stderr, "filename %d too long\n", strlen(argv[2]) + 11);
+        return 1;
+    }
+
     file = fopen(argv[1], "rb");
 
     if (!file) {