summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2020-05-09 22:09:40 +0200
committerMark Wielaard <mark@klomp.org>2020-05-14 14:30:57 +0200
commitdca13089f93807f99f447b9b033ac27a43ff913f (patch)
treed4de4894f18edbc3b3a65b240eca613bc5136ab4
parent5d769dd05d2e10dd35dc34e105d6f1f19b57d124 (diff)
downloadelfutils-dca13089f93807f99f447b9b033ac27a43ff913f.tar.gz
libdwfl: Return failure from dwfl_standard_find_debuginfo for NULL module.
GCC10 -fanalyzer plus -flto notices that some functions called by dwfl_standard_find_debuginfo check that the given module isn't NULL, but others expect it to be non-NULL. Just return a failure immediately when a NULL mod is passed to dwfl_standard_find_debuginfo. Signed-off-by: Mark Wielaard <mark@klomp.org>
-rw-r--r--libdwfl/ChangeLog5
-rw-r--r--libdwfl/find-debuginfo.c3
2 files changed, 8 insertions, 0 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index 05d5bd4a..4f1ec9da 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-09 Mark Wielaard <mark@klomp.org>
+
+ * find-debuginfo.c (dwfl_standard_find_debuginfo): Return failure
+ when mod is NULL.
+
2020-05-08 Mark Wielaard <mark@klomp.org>
* libdwfl/core-file.c (dwfl_core_file_report): Keep track of
diff --git a/libdwfl/find-debuginfo.c b/libdwfl/find-debuginfo.c
index 4cfd0b8b..eb68d549 100644
--- a/libdwfl/find-debuginfo.c
+++ b/libdwfl/find-debuginfo.c
@@ -355,6 +355,9 @@ dwfl_standard_find_debuginfo (Dwfl_Module *mod,
GElf_Word debuglink_crc,
char **debuginfo_file_name)
{
+ if (mod == NULL)
+ return -1;
+
/* First try by build ID if we have one. If that succeeds or fails
other than just by finding nothing, that's all we do. */
const unsigned char *bits = NULL;