diff options
author | Guo Yejun <yejun.guo@intel.com> | 2020-06-10 13:36:11 +0800 |
---|---|---|
committer | Guo, Yejun <yejun.guo@intel.com> | 2020-06-17 13:42:52 +0800 |
commit | 0b3bd001ac1745d9d008a2d195817df57d7d1d14 (patch) | |
tree | 00fe52c18ac22476df43f24d533c6aef8f36965d /libavfilter/dnn/dnn_backend_native.c | |
parent | fc932195ab0c9c00fa0cd9620c60763d978d495b (diff) |
dnn_backend_native: check operand index
it fixed the issue in https://trac.ffmpeg.org/ticket/8716
Diffstat (limited to 'libavfilter/dnn/dnn_backend_native.c')
-rw-r--r-- | libavfilter/dnn/dnn_backend_native.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libavfilter/dnn/dnn_backend_native.c b/libavfilter/dnn/dnn_backend_native.c index 12695a0232..35236fc66f 100644 --- a/libavfilter/dnn/dnn_backend_native.c +++ b/libavfilter/dnn/dnn_backend_native.c @@ -196,7 +196,7 @@ DNNModel *ff_dnn_load_model_native(const char *model_filename) } network->layers[layer].type = layer_type; - parsed_size = layer_funcs[layer_type].pf_load(&network->layers[layer], model_file_context, file_size); + parsed_size = layer_funcs[layer_type].pf_load(&network->layers[layer], model_file_context, file_size, network->operands_num); if (!parsed_size) { goto fail; } @@ -209,6 +209,10 @@ DNNModel *ff_dnn_load_model_native(const char *model_filename) int32_t operand_index = (int32_t)avio_rl32(model_file_context); dnn_size += 4; + if (operand_index >= network->operands_num) { + goto fail; + } + oprd = &network->operands[operand_index]; name_len = (int32_t)avio_rl32(model_file_context); dnn_size += 4; |