From: Vikash Garodia <quic_vgarodia@quicinc.com>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
<stanimir.k.varbanov@gmail.com>, <agross@kernel.org>,
<andersson@kernel.org>, <konrad.dybcio@linaro.org>,
<mchehab@kernel.org>, <hans.verkuil@cisco.com>,
<tfiga@chromium.org>
Cc: <linux-media@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <stable@vger.kernel.org>
Subject: Re: [PATCH v2 3/4] venus: hfi: add checks to handle capabilities from firmware
Date: Fri, 11 Aug 2023 11:24:23 +0530 [thread overview]
Message-ID: <a1713beb-e1bc-4118-ab58-b5d8e7fb3cbf@quicinc.com> (raw)
In-Reply-To: <59b61d65-a827-d252-cdc2-a256f99cb4d9@linaro.org>
On 8/10/2023 5:01 PM, Bryan O'Donoghue wrote:
> On 10/08/2023 03:25, Vikash Garodia wrote:
>> The hfi parser, parses the capabilities received from venus firmware and
>> copies them to core capabilities. Consider below api, for example,
>> fill_caps - In this api, caps in core structure gets updated with the
>> number of capabilities received in firmware data payload. If the same api
>> is called multiple times, there is a possibility of copying beyond the max
>> allocated size in core caps.
>> Similar possibilities in fill_raw_fmts and fill_profile_level functions.
>>
>> Cc: stable@vger.kernel.org
>> Fixes: 1a73374a04e5 ("media: venus: hfi_parser: add common capability parser")
>> Signed-off-by: Vikash Garodia <quic_vgarodia@quicinc.com>
>> ---
>> drivers/media/platform/qcom/venus/hfi_parser.c | 12 ++++++++++++
>> 1 file changed, 12 insertions(+)
>>
>> diff --git a/drivers/media/platform/qcom/venus/hfi_parser.c
>> b/drivers/media/platform/qcom/venus/hfi_parser.c
>> index 6cf74b2..9d6ba22 100644
>> --- a/drivers/media/platform/qcom/venus/hfi_parser.c
>> +++ b/drivers/media/platform/qcom/venus/hfi_parser.c
>> @@ -86,6 +86,9 @@ static void fill_profile_level(struct hfi_plat_caps *cap,
>> const void *data,
>> {
>> const struct hfi_profile_level *pl = data;
>> + if (cap->num_pl + num >= HFI_MAX_PROFILE_COUNT)
>> + return;
>> +
>> memcpy(&cap->pl[cap->num_pl], pl, num * sizeof(*pl));
>> cap->num_pl += num;
>> }
>
> Why append and discard though ?
>
> Couldn't we reset/reinitalise the relevant indexes in hfi_sys_init_done() ?
>
> Can subsequent notifications from the firmware give a new capability set ?
> Presumably not.
>
> IMO though instead of throwing away the new data, we should throw away the old
> data, no ?
The case is all about rogue firmware. If there is a need to fill the same cap
again, that itself indicates that the payload from firmware is not correct. In
such cases, the old as well as new cap data are not reliable. Though the
authenticity of the data cannot be ensured, the check would avoid any OOB during
such rogue firmware case.
Regards,
Vikash
>
> ---
> bod
next prev parent reply other threads:[~2023-08-11 5:54 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-10 2:25 [PATCH v2 0/4] Venus driver fixes to avoid possible OOB accesses Vikash Garodia
2023-08-10 2:25 ` [PATCH v2 1/4] venus: hfi: add checks to perform sanity on queue pointers Vikash Garodia
2023-08-10 11:24 ` Bryan O'Donoghue
2023-08-11 5:46 ` Vikash Garodia
2023-08-10 2:25 ` [PATCH v2 2/4] venus: hfi: fix the check to handle session buffer requirement Vikash Garodia
2023-08-10 11:26 ` Bryan O'Donoghue
2023-08-10 2:25 ` [PATCH v2 3/4] venus: hfi: add checks to handle capabilities from firmware Vikash Garodia
2023-08-10 11:31 ` Bryan O'Donoghue
2023-08-11 5:54 ` Vikash Garodia [this message]
2023-08-11 8:41 ` Bryan O'Donoghue
2023-08-11 8:51 ` Vikash Garodia
2023-08-11 10:39 ` Bryan O'Donoghue
2023-08-11 16:10 ` Vikash Garodia
2023-08-10 2:25 ` [PATCH v2 4/4] venus: hfi_parser: Add check to keep the number of codecs within range Vikash Garodia
2023-08-10 11:33 ` Bryan O'Donoghue
2023-08-11 6:04 ` Vikash Garodia
2023-08-11 8:42 ` Bryan O'Donoghue
2023-08-11 8:49 ` Vikash Garodia
2023-08-11 10:41 ` Bryan O'Donoghue
2023-08-11 16:02 ` Vikash Garodia
2023-08-11 18:51 ` Bryan O'Donoghue
2023-08-14 6:34 ` Vikash Garodia
2023-08-14 14:15 ` Bryan O'Donoghue
2023-08-29 8:00 ` Vikash Garodia
2023-08-29 11:59 ` Bryan O'Donoghue
2023-08-29 14:06 ` Vikash Garodia
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=a1713beb-e1bc-4118-ab58-b5d8e7fb3cbf@quicinc.com \
--to=quic_vgarodia@quicinc.com \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=bryan.odonoghue@linaro.org \
--cc=hans.verkuil@cisco.com \
--cc=konrad.dybcio@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=stable@vger.kernel.org \
--cc=stanimir.k.varbanov@gmail.com \
--cc=tfiga@chromium.org \
/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®