2021-10-09 09:01:07

by CGEL

[permalink] [raw]
Subject: [PATCH V1] firmware: tegra: fix error application of sizeof to pointer

From: Lv Ruyi <[email protected]>

Application of sizeof to pointer yields the number of bytes of the pointer,
but it should use the length of buffer in the code.

Reported-by: Zeal Robot <[email protected]>
Signed-off-by: Lv Ruyi <[email protected]>
---
drivers/firmware/tegra/bpmp-debugfs.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/firmware/tegra/bpmp-debugfs.c b/drivers/firmware/tegra/bpmp-debugfs.c
index 6d66fe03fb6a..fd89899aeeed 100644
--- a/drivers/firmware/tegra/bpmp-debugfs.c
+++ b/drivers/firmware/tegra/bpmp-debugfs.c
@@ -77,13 +77,14 @@ static const char *get_filename(struct tegra_bpmp *bpmp,
const char *root_path, *filename = NULL;
char *root_path_buf;
size_t root_len;
+ size_t root_path_buf_len = 512;

- root_path_buf = kzalloc(512, GFP_KERNEL);
+ root_path_buf = kzalloc(root_path_buf_len, GFP_KERNEL);
if (!root_path_buf)
goto out;

root_path = dentry_path(bpmp->debugfs_mirror, root_path_buf,
- sizeof(root_path_buf));
+ root_path_buf_len);
if (IS_ERR(root_path))
goto out;

--
2.25.1


2021-10-14 22:43:11

by Jon Hunter

[permalink] [raw]
Subject: Re: [PATCH V1] firmware: tegra: fix error application of sizeof to pointer

Hi Lv,

On 09/10/2021 09:59, [email protected] wrote:
> From: Lv Ruyi <[email protected]>
>
> Application of sizeof to pointer yields the number of bytes of the pointer,
> but it should use the length of buffer in the code.
>
> Reported-by: Zeal Robot <[email protected]>
> Signed-off-by: Lv Ruyi <[email protected]>
> ---
> drivers/firmware/tegra/bpmp-debugfs.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/firmware/tegra/bpmp-debugfs.c b/drivers/firmware/tegra/bpmp-debugfs.c
> index 6d66fe03fb6a..fd89899aeeed 100644
> --- a/drivers/firmware/tegra/bpmp-debugfs.c
> +++ b/drivers/firmware/tegra/bpmp-debugfs.c
> @@ -77,13 +77,14 @@ static const char *get_filename(struct tegra_bpmp *bpmp,
> const char *root_path, *filename = NULL;
> char *root_path_buf;
> size_t root_len;
> + size_t root_path_buf_len = 512;
>
> - root_path_buf = kzalloc(512, GFP_KERNEL);
> + root_path_buf = kzalloc(root_path_buf_len, GFP_KERNEL);
> if (!root_path_buf)
> goto out;
>
> root_path = dentry_path(bpmp->debugfs_mirror, root_path_buf,
> - sizeof(root_path_buf));
> + root_path_buf_len);
> if (IS_ERR(root_path))
> goto out;
>
>

Thanks for fixing this! I just noticed that the debugfs for BPMP is
broken on -next right now and this fixes it. We should add the fixes tag ...

Fixes: 06c2d9a078ab ("firmware: tegra: Reduce stack usage")

Otherwise ...

Reviewed-by: Jon Hunter <[email protected]>
Tested-by: Jon Hunter <[email protected]>

Arnd, do you want to pick this up?

Jon

--
nvpublic

2021-10-14 23:07:29

by Jon Hunter

[permalink] [raw]
Subject: Re: [PATCH V1] firmware: tegra: fix error application of sizeof to pointer


On 14/10/2021 19:26, Jon Hunter wrote:
> Hi Lv,
>
> On 09/10/2021 09:59, [email protected] wrote:
>> From: Lv Ruyi <[email protected]>
>>
>> Application of sizeof to pointer yields the number of bytes of the
>> pointer,
>> but it should use the length of buffer in the code.
>>
>> Reported-by: Zeal Robot <[email protected]>
>> Signed-off-by: Lv Ruyi <[email protected]>
>> ---
>>   drivers/firmware/tegra/bpmp-debugfs.c | 5 +++--
>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/firmware/tegra/bpmp-debugfs.c
>> b/drivers/firmware/tegra/bpmp-debugfs.c
>> index 6d66fe03fb6a..fd89899aeeed 100644
>> --- a/drivers/firmware/tegra/bpmp-debugfs.c
>> +++ b/drivers/firmware/tegra/bpmp-debugfs.c
>> @@ -77,13 +77,14 @@ static const char *get_filename(struct tegra_bpmp
>> *bpmp,
>>       const char *root_path, *filename = NULL;
>>       char *root_path_buf;
>>       size_t root_len;
>> +    size_t root_path_buf_len = 512;
>> -    root_path_buf = kzalloc(512, GFP_KERNEL);
>> +    root_path_buf = kzalloc(root_path_buf_len, GFP_KERNEL);
>>       if (!root_path_buf)
>>           goto out;
>>       root_path = dentry_path(bpmp->debugfs_mirror, root_path_buf,
>> -                sizeof(root_path_buf));
>> +                root_path_buf_len);
>>       if (IS_ERR(root_path))
>>           goto out;
>>
>
> Thanks for fixing this! I just noticed that the debugfs for BPMP is
> broken on -next right now and this fixes it. We should add the fixes tag
> ...
>
> Fixes: 06c2d9a078ab ("firmware: tegra: Reduce stack usage")
>
> Otherwise ...
>
> Reviewed-by: Jon Hunter <[email protected]>
> Tested-by: Jon Hunter <[email protected]>
>
> Arnd, do you want to pick this up?

Nevermind I see that Thierry queued up the offending patch and so I will
ask Thierry to pick this up.

Jon

--
nvpublic

2021-10-18 14:21:12

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH V1] firmware: tegra: fix error application of sizeof to pointer

On Sat, Oct 09, 2021 at 08:59:00AM +0000, [email protected] wrote:
> From: Lv Ruyi <[email protected]>
>
> Application of sizeof to pointer yields the number of bytes of the pointer,
> but it should use the length of buffer in the code.
>
> Reported-by: Zeal Robot <[email protected]>
> Signed-off-by: Lv Ruyi <[email protected]>
> ---
> drivers/firmware/tegra/bpmp-debugfs.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)

Applied, thanks.

Thierry


Attachments:
(No filename) (485.00 B)
signature.asc (849.00 B)
Download all attachments

2021-12-04 08:01:48

by Jon Hunter

[permalink] [raw]
Subject: Re: [PATCH V1] firmware: tegra: fix error application of sizeof to pointer

Hi Thierry,

On 18/10/2021 15:06, Thierry Reding wrote:
> On Sat, Oct 09, 2021 at 08:59:00AM +0000, [email protected] wrote:
>> From: Lv Ruyi <[email protected]>
>>
>> Application of sizeof to pointer yields the number of bytes of the pointer,
>> but it should use the length of buffer in the code.
>>
>> Reported-by: Zeal Robot <[email protected]>
>> Signed-off-by: Lv Ruyi <[email protected]>
>> ---
>> drivers/firmware/tegra/bpmp-debugfs.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> Applied, thanks.


We need to apply this as a fix for v5.16. I am still seeing a failure
for reading the BPMP debugfs on v5.16-rc3.

Jon

--
nvpublic