virgl/video: Fix out-of-bounds access in fill_mpeg4_picture_desc()
authorFeng Jiang <jiangfeng@kylinos.cn>
Mon, 22 May 2023 06:27:25 +0000 (14:27 +0800)
committerMarge Bot <emma+marge@anholt.net>
Tue, 11 Jul 2023 04:46:17 +0000 (04:46 +0000)
An out-of-bounds access has occurred to array ref[2] and it needs
to be fixed.

Fixes: 6b5aecb19558 ("virgl: add support for hardware video acceleration")
Signed-off-by: Feng Jiang <jiangfeng@kylinos.cn>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23160>

src/gallium/drivers/virgl/virgl_video.c

index a23583e..1924288 100644 (file)
@@ -551,7 +551,7 @@ static int fill_mpeg4_picture_desc(const struct pipe_picture_desc *desc,
     ITEM_SET(vmpeg4, mpeg4, top_field_first);
     ITEM_CPY(vmpeg4, mpeg4, intra_matrix);
     ITEM_CPY(vmpeg4, mpeg4, non_intra_matrix);
-    for (i = 0; i < 16; i++) {
+    for (i = 0; i < ARRAY_SIZE(mpeg4->ref); i++) {
         vbuf = virgl_video_buffer(mpeg4->ref[i]);
         vmpeg4->ref[i] = vbuf ? vbuf->handle : 0;
     }