Coverity detected a "defect" in dump_note_entry_p in linux-tdep.c:
static int
dump_note_entry_p (filter_flags filterflags, const struct smaps_vmflags *v,
int maybe_private_p, int mapping_anon_p, int mapping_file_p,
const char *filename, ULONGEST addr, ULONGEST offset)
{
/* vDSO and vsyscall mappings will end up in the core file. Don't
put them in the NT_FILE note. */
if (strcmp ("[vdso]", filename) == 0
|| strcmp ("[vsyscall]", filename) == 0)
return 0;
/* Otherwise, any other file-based mapping should be placed in the
note. */
return filename != nullptr;
}
Those strcmp's will derefernce `filename' so there is little point
to checking whether it is non-NULL or not; we would have already
segfaulted. It also cannot be nullptr because its value is read directly
from /proc/PID/maps. The "worst" it can be is an empty string.
gdb/ChangeLog
2020-11-18 Keith Seitz <keiths@redhat.com>
* linux-tdep.c (dump_note_entry_p): Return true instead of
checking `filename'.
+2020-11-18 Keith Seitz <keiths@redhat.com>
+
+ * linux-tdep.c (dump_note_entry_p): Return true instead of
+ checking `filename'.
+
2020-11-18 Tom de Vries <tdevries@suse.de>
* debuginfod-support.c (debuginfod_source_query)
/* Otherwise, any other file-based mapping should be placed in the
note. */
- return filename != nullptr;
+ return 1;
}
/* Implement the "info proc" command. */