On Thu, 13 Feb 2025 16:12:48 +0000 Steven Price <steven.price@xxxxxxx> 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 <will@xxxxxxxxxx> > Fixes: 9d443deb0441 ("drm/panthor: Display FW version information") > Signed-off-by: Steven Price <steven.price@xxxxxxx> Reviewed-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> > --- > 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; > }