On Thu, 13 Feb 2025 16:12:48 +0000
Steven Price <steven.pr...@arm.com> wrote:

> Assigning a string to an array which is too small to include the NUL
> byte at the end causes a warning on some compilers. But this function
> also has some other oddities like the 'header' array which is only ever
> used within sizeof().
> 
> Tidy up the function by removing the 'header' array, allow the NUL byte
> to be present in git_sha_header, and calculate the length directly from
> git_sha_header.
> 
> Reported-by: Will Deacon <w...@kernel.org>
> Fixes: 9d443deb0441 ("drm/panthor: Display FW version information")
> Signed-off-by: Steven Price <steven.pr...@arm.com>

Reviewed-by: Boris Brezillon <boris.brezil...@collabora.com>

> ---
> Note that there should be no functional change from this patch.
> ---
>  drivers/gpu/drm/panthor/panthor_fw.c | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panthor/panthor_fw.c 
> b/drivers/gpu/drm/panthor/panthor_fw.c
> index 4a9c4afa9ad7..645fc6d2e63b 100644
> --- a/drivers/gpu/drm/panthor/panthor_fw.c
> +++ b/drivers/gpu/drm/panthor/panthor_fw.c
> @@ -636,8 +636,8 @@ static int panthor_fw_read_build_info(struct 
> panthor_device *ptdev,
>                                     u32 ehdr)
>  {
>       struct panthor_fw_build_info_hdr hdr;
> -     char header[9];
> -     const char git_sha_header[sizeof(header)] = "git_sha: ";
> +     const char git_sha_header[] = "git_sha: ";
> +     const int header_len = sizeof(git_sha_header) - 1;
>       int ret;
>  
>       ret = panthor_fw_binary_iter_read(ptdev, iter, &hdr, sizeof(hdr));
> @@ -651,8 +651,7 @@ static int panthor_fw_read_build_info(struct 
> panthor_device *ptdev,
>               return 0;
>       }
>  
> -     if (memcmp(git_sha_header, fw->data + hdr.meta_start,
> -                sizeof(git_sha_header))) {
> +     if (memcmp(git_sha_header, fw->data + hdr.meta_start, header_len)) {
>               /* Not the expected header, this isn't metadata we understand */
>               return 0;
>       }
> @@ -665,7 +664,7 @@ static int panthor_fw_read_build_info(struct 
> panthor_device *ptdev,
>       }
>  
>       drm_info(&ptdev->base, "Firmware git sha: %s\n",
> -              fw->data + hdr.meta_start + sizeof(git_sha_header));
> +              fw->data + hdr.meta_start + header_len);
>  
>       return 0;
>  }

Reply via email to