Squash coverity warning for REVERSE_INULL in dump_note_entry_p
authorKeith Seitz <keiths@redhat.com>
Wed, 18 Nov 2020 20:57:53 +0000 (12:57 -0800)
committerKeith Seitz <keiths@redhat.com>
Wed, 18 Nov 2020 21:59:05 +0000 (13:59 -0800)
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'.

gdb/ChangeLog
gdb/linux-tdep.c

index 18c8c0dc08efcd16e6e33a333ab9889ad5c1e1ff..1c0029da355d95651abd6b29f60e73df4c51da5c 100644 (file)
@@ -1,3 +1,8 @@
+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)
index bacb61398fab6e384da3db3e50e3313f7dcee560..8f7bbd5c23490393a939ba51399c73988c3a1b68 100644 (file)
@@ -742,7 +742,7 @@ dump_note_entry_p (filter_flags filterflags, const struct smaps_vmflags *v,
 
   /* Otherwise, any other file-based mapping should be placed in the
      note.  */
-  return filename != nullptr;
+  return 1;
 }
 
 /* Implement the "info proc" command.  */