diff options
author | Ming Qian <ming.qian@nxp.com> | 2022-02-07 09:28:43 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-04-08 15:24:01 +0300 |
commit | 02f9f97d54ffc85b50ad77f5b1f3c8f69cd17747 (patch) | |
tree | b265ddbc8af038988daae99769c41274789c199b /drivers/media | |
parent | 0b620fce5eaeb4131a57d96227cdc4e535e1ffaa (diff) | |
download | linux-02f9f97d54ffc85b50ad77f5b1f3c8f69cd17747.tar.xz |
media: imx-jpeg: fix a bug of accessing array out of bounds
[ Upstream commit 97558d170a1236280407e8d29a7d095d2c2ed554 ]
When error occurs in parsing jpeg, the slot isn't acquired yet, it may
be the default value MXC_MAX_SLOTS.
If the driver access the slot using the incorrect slot number, it will
access array out of bounds.
The result is the driver will change num_domains, which follows
slot_data in struct mxc_jpeg_dev.
Then the driver won't detach the pm domain at rmmod, which will lead to
kernel panic when trying to insmod again.
Signed-off-by: Ming Qian <ming.qian@nxp.com>
Reviewed-by: Mirela Rabulea <mirela.rabulea@nxp.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/platform/imx-jpeg/mxc-jpeg.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/media/platform/imx-jpeg/mxc-jpeg.c b/drivers/media/platform/imx-jpeg/mxc-jpeg.c index 637d73f5f4a2..37905547466b 100644 --- a/drivers/media/platform/imx-jpeg/mxc-jpeg.c +++ b/drivers/media/platform/imx-jpeg/mxc-jpeg.c @@ -932,7 +932,6 @@ static void mxc_jpeg_device_run(void *priv) jpeg_src_buf->jpeg_parse_error = true; } if (jpeg_src_buf->jpeg_parse_error) { - jpeg->slot_data[ctx->slot].used = false; v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_ERROR); |