[FFmpeg-devel] [PATCH 12/23] dnn/dnn_backend_native: Don't use asserts for checks

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Wed Mar 10 23:54:35 EET 2021


asserts should not be used instead of ordinary input checks.
Yet the native DNN backend did it: get_input_native() asserted that
the first dimension was one, despite this value coming directly from
the input file without having been sanitized.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
---
get_input_native() only asserts this for input operands; so it might be
that the check below should also check for this (depending upon whether
1 is a valid value for output operands).

 libavfilter/dnn/dnn_backend_native.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavfilter/dnn/dnn_backend_native.c b/libavfilter/dnn/dnn_backend_native.c
index fd1f9e299d..b3c41af94e 100644
--- a/libavfilter/dnn/dnn_backend_native.c
+++ b/libavfilter/dnn/dnn_backend_native.c
@@ -231,6 +231,8 @@ DNNModel *ff_dnn_load_model_native(const char *model_filename, DNNFunctionType f
             oprd->dims[dim] = (int32_t)avio_rl32(model_file_context);
             dnn_size += 4;
         }
+        if (oprd->dims[0] != 1)
+            goto fail;
 
         oprd->isNHWC = 1;
     }
-- 
2.27.0



More information about the ffmpeg-devel mailing list