drivers/remoteproc/remoteproc_elf_helpers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
In elf_strtbl_add() pointer 'strtab', which value is a result of shifting
after dereference of another pointer 'ehdr', is compared to NULL, which is
useless.
Fix this issue by removing unneeded check.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: abc72b646066 ("remoteproc: coredump: Add minidump functionality")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
---
drivers/remoteproc/remoteproc_elf_helpers.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/remoteproc/remoteproc_elf_helpers.h b/drivers/remoteproc/remoteproc_elf_helpers.h
index e6de53a5000c..7c57fb553466 100644
--- a/drivers/remoteproc/remoteproc_elf_helpers.h
+++ b/drivers/remoteproc/remoteproc_elf_helpers.h
@@ -107,7 +107,7 @@ static inline unsigned int elf_strtbl_add(const char *name, void *ehdr, u8 class
shdr = ehdr + elf_size_of_hdr(class) + shstrndx * elf_size_of_shdr(class);
strtab = ehdr + elf_shdr_get_sh_offset(class, shdr);
idx = index ? *index : 0;
- if (!strtab || !name)
+ if (!name)
return 0;
ret = idx;
--
2.30.2
…
> useless.
because …?
> Fix this issue by removing unneeded check.
Another wording suggestion:
Thus remove a redundant check.
…
> +++ b/drivers/remoteproc/remoteproc_elf_helpers.h
> @@ -107,7 +107,7 @@ static inline unsigned int elf_strtbl_add(const char *name, void *ehdr, u8 class
> shdr = ehdr + elf_size_of_hdr(class) + shstrndx * elf_size_of_shdr(class);
> strtab = ehdr + elf_shdr_get_sh_offset(class, shdr);
> idx = index ? *index : 0;
> - if (!strtab || !name)
> + if (!name)
> return 0;
…
How do you think about to perform the remaining null pointer check
as the first statement (because of input parameter validation in
this function implementation)?
Regards,
Markus
© 2016 - 2026 Red Hat, Inc.