[FFmpeg-devel] [PATCH] avcodec/libuavs3d: fix potential index out of range

Zhao Zhili quinkblack at foxmail.com
Thu Jun 2 15:39:00 EEST 2022


Signed-off-by: Zhao Zhili <quinkblack at foxmail.com>
---
 libavcodec/libuavs3d.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/libuavs3d.c b/libavcodec/libuavs3d.c
index e911963a41..7c6c3f0440 100644
--- a/libavcodec/libuavs3d.c
+++ b/libavcodec/libuavs3d.c
@@ -84,13 +84,13 @@ static void uavs3d_output_callback(uavs3d_io_frm_t *dec_frame) {
     frm->coded_picture_number   = dec_frame->dtr;
     frm->display_picture_number = dec_frame->ptr;
 
-    if (dec_frame->type < 0 || dec_frame->type >= 4) {
+    if (dec_frame->type < 0 || dec_frame->type >= FF_ARRAY_ELEMS(ff_avs3_image_type)) {
         av_log(NULL, AV_LOG_WARNING, "Error frame type in uavs3d: %d.\n", dec_frame->type);
+    } else {
+        frm->pict_type = ff_avs3_image_type[dec_frame->type];
+        frm->key_frame = (frm->pict_type == AV_PICTURE_TYPE_I);
     }
 
-    frm->pict_type = ff_avs3_image_type[dec_frame->type];
-    frm->key_frame = (frm->pict_type == AV_PICTURE_TYPE_I);
-
     for (i = 0; i < 3; i++) {
         frm_out.width [i] = dec_frame->width[i];
         frm_out.height[i] = dec_frame->height[i];
-- 
2.35.3



More information about the ffmpeg-devel mailing list