> -----Original Message-----
> From: ffmpeg-devel <[email protected]> On Behalf Of
> Andreas Rheinhardt
> Sent: 2021年3月11日 5:55
> To: [email protected]
> Cc: Andreas Rheinhardt <[email protected]>
> Subject: [FFmpeg-devel] [PATCH 12/23] dnn/dnn_backend_native: Don't use
> asserts for checks
>
> 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 <[email protected]>
> ---
> 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;
Thanks, the operands here include input, output and intermediate whose dims[0]
could be any other values, so, the fix here can be:
if (oprd->dims[0] != 1 && oprd->type == DOT_INPUT)
goto fail;
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".