Commit 0295343c authored by Irui Wang's avatar Irui Wang Committed by Cai Xinchen
Browse files

media: mediatek: vcodec: Handle invalid decoder vsi

mainline inclusion
from mainline-v6.11-rc1
commit 59d438f8e02ca641c58d77e1feffa000ff809e9f
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAKQ2F
CVE: CVE-2024-43831

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=59d438f8e02ca641c58d77e1feffa000ff809e9f



--------------------------------

Handle an invalid decoder vsi in vpu_dec_init to ensure the decoder vsi
is valid for future use.

Fixes: 590577a4 ("[media] vcodec: mediatek: Add Mediatek V4L2 Video Decoder Driver")

Signed-off-by: default avatarIrui Wang <irui.wang@mediatek.com>
Reviewed-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: default avatarSebastian Fricke <sebastian.fricke@collabora.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Conflicts:
	drivers/media/platform/mtk-vcodec/vdec_vpu_if.c
[vpu_dec_init is moved from drivers/media/platform/mtk-vcodec/vdec_vpu_if.c to
drivers/media/platform/mediatek/vcodec/decoder/vdec_vpu_if.c. Using mtk_vcodec_err
instead of  mtk_vdec_err becuase 0db2fc4e is not merged]
Signed-off-by: default avatarCai Xinchen <caixinchen1@huawei.com>
parent c791a369
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -127,6 +127,12 @@ int vpu_dec_init(struct vdec_vpu_inst *vpu)
	mtk_vcodec_debug(vpu, "vdec_inst=%p", vpu);

	err = vcodec_vpu_send_msg(vpu, (void *)&msg, sizeof(msg));

	if (IS_ERR_OR_NULL(vpu->vsi)) {
		mtk_vcodec_err(vpu, "invalid vdec vsi, status=%d", err);
		return -EINVAL;
	}

	mtk_vcodec_debug(vpu, "- ret=%d", err);
	return err;
}