From 0b3bd001ac1745d9d008a2d195817df57d7d1d14 Mon Sep 17 00:00:00 2001 From: Guo Yejun Date: Wed, 10 Jun 2020 13:36:11 +0800 Subject: dnn_backend_native: check operand index it fixed the issue in https://trac.ffmpeg.org/ticket/8716 --- libavfilter/dnn/dnn_backend_native_layer_maximum.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libavfilter/dnn/dnn_backend_native_layer_maximum.c') diff --git a/libavfilter/dnn/dnn_backend_native_layer_maximum.c b/libavfilter/dnn/dnn_backend_native_layer_maximum.c index 19f0e8da01..af16e08b95 100644 --- a/libavfilter/dnn/dnn_backend_native_layer_maximum.c +++ b/libavfilter/dnn/dnn_backend_native_layer_maximum.c @@ -27,7 +27,7 @@ #include "libavutil/avassert.h" #include "dnn_backend_native_layer_maximum.h" -int dnn_load_layer_maximum(Layer *layer, AVIOContext *model_file_context, int file_size) +int dnn_load_layer_maximum(Layer *layer, AVIOContext *model_file_context, int file_size, int operands_num) { DnnLayerMaximumParams *params; int dnn_size = 0; @@ -42,6 +42,10 @@ int dnn_load_layer_maximum(Layer *layer, AVIOContext *model_file_context, int fi layer->output_operand_index = (int32_t)avio_rl32(model_file_context); dnn_size += 8; + if (layer->input_operand_indexes[0] >= operands_num || layer->output_operand_index >= operands_num) { + return 0; + } + return dnn_size; } -- cgit v1.2.3