Browse Source

tools/target_enc_fuzzer: Only read pix_fmts if its set

Fixes: null pointer dereference
Fixes: rawvideo encoder

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer 10 months ago
parent
commit
24bd01ea65
1 changed files with 6 additions and 4 deletions
  1. 6 4
      tools/target_enc_fuzzer.c

+ 6 - 4
tools/target_enc_fuzzer.c

@@ -130,10 +130,12 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
 
         flags64 = bytestream2_get_le64(&gbc);
 
-        int npixfmts = 0;
-        while (c->p.pix_fmts[npixfmts++] != AV_PIX_FMT_NONE)
-            ;
-        ctx->pix_fmt = c->p.pix_fmts[bytestream2_get_byte(&gbc) % npixfmts];
+        if (c->p.pix_fmts) {
+            int npixfmts = 0;
+            while (c->p.pix_fmts[npixfmts++] != AV_PIX_FMT_NONE)
+                ;
+            ctx->pix_fmt = c->p.pix_fmts[bytestream2_get_byte(&gbc) % npixfmts];
+        }
 
         switch (c->p.id) {
         case AV_CODEC_ID_FFV1:{