gdb/testsuite: check mmap ret val against MAP_FAILED
authorSimon Marchi <simon.marchi@efficios.com>
Wed, 20 May 2020 14:50:39 +0000 (10:50 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Wed, 20 May 2020 14:50:50 +0000 (10:50 -0400)
Fixup a few spots in the testsuite that use mmap to consistently check
the return value against MAP_FAILED.

One spot in gdb.base/coredump-filter.c checked against NULL, that is
wrong.  The other spots either didn't check, or checked against -1.
MAP_FAILED has the value -1, at least on Linux, but it's better to check
against the documented define.

gdb/testsuite/ChangeLog:

PR gdb/26016
* gdb.base/coredump-filter.c (do_mmap): Check mmap ret val
against MAP_FAILED.
* gdb.base/coremaker.c (mmapdata): Likewise.
* gdb.base/jit-reader-host.c (main): Likewise.
* gdb.base/sym-file-loader.c (load): Likewise.
(load_shlib): Likewise.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/coredump-filter.c
gdb/testsuite/gdb.base/coremaker.c
gdb/testsuite/gdb.base/jit-reader-host.c
gdb/testsuite/gdb.base/sym-file-loader.c

index 67522a764022a05baea618aeb024847b20a296b0..050a793ed05db2eca638e29d817b26360b43fce7 100644 (file)
@@ -1,3 +1,13 @@
+2020-05-20  Simon Marchi  <simon.marchi@efficios.com>
+
+       PR gdb/26016
+       * gdb.base/coredump-filter.c (do_mmap): Check mmap ret val
+       against MAP_FAILED.
+       * gdb.base/coremaker.c (mmapdata): Likewise.
+       * gdb.base/jit-reader-host.c (main): Likewise.
+       * gdb.base/sym-file-loader.c (load): Likewise.
+       (load_shlib): Likewise.
+
 2020-05-20  Tom Tromey  <tromey@adacore.com>
 
        * gdb.ada/array_char_idx.exp: Recognize initialized array.
index f53a933a72545741094fc9549ff4411e3741adbe..5786c6fe0982dee6c594c7764a5dbe9904464518 100644 (file)
@@ -29,7 +29,7 @@ do_mmap (void *addr, size_t size, int prot, int flags, int fd, off_t offset)
 {
   void *ret = mmap (addr, size, prot, flags, fd, offset);
 
-  assert (ret != NULL);
+  assert (ret != MAP_FAILED);
   return ret;
 }
 
index 55330fd3e8a4fa56bfc024de1e75e3423e1370cf..3cc97e1e8e5931dfdfd49cf718a780b4693dfafd 100644 (file)
@@ -77,7 +77,7 @@ mmapdata ()
   /* Now map the file into our address space as buf2 */
 
   buf2 = (char *) mmap (0, MAPSIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
-  if (buf2 == (char *) -1)
+  if (buf2 == (char *) MAP_FAILED)
     {
       perror ("mmap failed");
       return;
index f9c4833083aaf61a698ab17e351b576f7ef6750b..0cf653f1fb2241b77b020337e470bc97e9cbab31 100644 (file)
@@ -15,6 +15,7 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -59,6 +60,8 @@ main (int argc, char **argv)
                     MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
   char *code_end = code;
 
+  assert (code != MAP_FAILED);
+
   /* "JIT" function_stack_mangle.  */
   memcpy (code_end, jit_function_stack_mangle_code,
          sizeof (jit_function_stack_mangle_code));
index 5fcabec4e1bf8f7806a24208d0083e63dfb122db..c8074b8489110c606aef140d35bae780538ae2f1 100644 (file)
@@ -20,6 +20,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <sys/mman.h>
+#include <assert.h>
 
 #include "sym-file-loader.h"
 
@@ -112,6 +113,8 @@ load (uint8_t *addr, Elf_External_Phdr *phdr, struct segment *tail_seg)
   mapped_addr = (uint8_t *) mmap ((void *) GETADDR (phdr, p_vaddr),
                                  GET (phdr, p_memsz), perm,
                                  MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+  assert (mapped_addr != MAP_FAILED);
+
   mapped_size = GET (phdr, p_memsz);
 
   from = (void *) (addr + GET (phdr, p_offset));
@@ -255,7 +258,7 @@ load_shlib (const char *file)
     }
 
   addr = (uint8_t *) mmap (NULL, fsize, PROT_READ, MAP_PRIVATE, fd, 0);
-  if (addr == (uint8_t *) -1)
+  if (addr == MAP_FAILED)
     {
       perror ("mmap failed.");
       return NULL;