From: Alexandre Mergnat <amergnat@baylibre.com>
To: Zheng Wang <zyytlz.wz@163.com>, dmitry.osipenko@collabora.com
Cc: Kyrie.Wu@mediatek.com, bin.liu@mediatek.com, mchehab@kernel.org,
matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com,
linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, Irui.Wang@mediatek.com,
security@kernel.org, hackerzheng666@gmail.com,
1395428693sheep@gmail.com, alex000young@gmail.com,
wenst@chromium.org, stable@vger.kernel.org
Subject: Re: [PATCH] media: mtk-jpeg: Fix use after free bug due to error path handling in mtk_jpeg_dec_device_run
Date: Fri, 20 Oct 2023 12:32:22 +0200 [thread overview]
Message-ID: <b372ef8c-7f3f-483b-8cc2-d927a60050be@baylibre.com> (raw)
In-Reply-To: <20231020040732.2499269-1-zyytlz.wz@163.com>
Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com>
On 20/10/2023 06:07, Zheng Wang wrote:
> In mtk_jpeg_probe, &jpeg->job_timeout_work is bound with
> mtk_jpeg_job_timeout_work. In mtk_jpeg_dec_device_run, if error happens
> in mtk_jpeg_set_dec_dst, it will finally start the worker while mark the
> job as finished by invoking v4l2_m2m_job_finish. There are two methods
> to trigger the bug. If we remove the module, it which will call
> mtk_jpeg_remove to make cleanup. The possible sequence is as follows,
> which will cause a use-after-free bug. CPU0 CPU1 mtk_jpeg_dec_... |
> start worker | |mtk_jpeg_job_timeout_work mtk_jpeg_remove |
> v4l2_m2m_release | kfree(m2m_dev); | | | v4l2_m2m_get_curr_priv |
> m2m_dev->curr_ctx //use If we close the file descriptor, which will call
> mtk_jpeg_release, it will have a similar sequence. Fix this bug by start
> timeout worker only if started jpegdec worker successfully so the
> v4l2_m2m_job_finish will only be called on either
> mtk_jpeg_job_timeout_work or mtk_jpeg_dec_device_run. This patch also
> reverts commit c677d7ae8314 ("media: mtk-jpeg: Fix use after free bug
> due to uncanceled work") for this patch also fixed the use-after-free
> bug mentioned before. Before mtk_jpeg_remove is invoked,
> mtk_jpeg_release must be invoked to close opened files. And it will call
> v4l2_m2m_cancel_job to wait for the timeout worker finished so the
> canceling in mtk_jpeg_remove is unnecessary.
--
Regards,
Alexandre
next prev parent reply other threads:[~2023-10-20 10:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-20 4:07 Zheng Wang
2023-10-20 8:20 ` AngeloGioacchino Del Regno
2023-10-20 10:32 ` Alexandre Mergnat [this message]
2023-10-24 13:18 ` Dmitry Osipenko
2023-10-26 2:37 ` Zheng Hacker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b372ef8c-7f3f-483b-8cc2-d927a60050be@baylibre.com \
--to=amergnat@baylibre.com \
--cc=1395428693sheep@gmail.com \
--cc=Irui.Wang@mediatek.com \
--cc=Kyrie.Wu@mediatek.com \
--cc=alex000young@gmail.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bin.liu@mediatek.com \
--cc=dmitry.osipenko@collabora.com \
--cc=hackerzheng666@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=mchehab@kernel.org \
--cc=security@kernel.org \
--cc=stable@vger.kernel.org \
--cc=wenst@chromium.org \
--cc=zyytlz.wz@163.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®