[PATCH] src: fix DEREF_OF_NULL.RET.STAT in unstrip.c

Anton Moryakov ant.v.moryakov@gmail.com
Thu Feb 13 17:19:44 GMT 2025


Static analyzer reported:
Return value of a function 'elf_getdata' is dereferenced at unstrip.c:1977
without checking for NULL, but it is usually checked for this function (97/101).

Corrections explained:
- Added a check for NULL for the symstrdata variable before calling dwelf_strtab_finalize.
- If symstrdata is NULL, the program exits with an error.

Triggers found by static analyzer Svace.

Signed-off-by: Anton Moryakov <ant.v.moryakov@gmail.com>
---
 src/unstrip.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/unstrip.c b/src/unstrip.c
index d70053de..35c04700 100644
--- a/src/unstrip.c
+++ b/src/unstrip.c
@@ -1974,6 +1974,9 @@ more sections in stripped file than debug file -- arguments reversed?"));
 	    }
 	}
 
+      if (symstrdata == NULL)
+	error_exit (0, "Failed to get data from symbol string table");
+
       if (dwelf_strtab_finalize (symstrtab, symstrdata) == NULL)
 	error_exit (0, "Not enough memory to create symbol table");
 
-- 
2.30.2



More information about the Elfutils-devel mailing list