src: fix up mmap() error checking
authorRoss Zwisler <ross.zwisler@linux.intel.com>
Wed, 20 Jun 2018 22:51:46 +0000 (16:51 -0600)
committerEryu Guan <guaneryu@gmail.com>
Fri, 22 Jun 2018 02:23:55 +0000 (10:23 +0800)
I noticed that in some of my C tests in src/ I was incorrectly
checking for mmap() failure by looking for NULL instead of
MAP_FAILED.  Fix those and clean up some places where we were
testing against -1 (the actual value of MAP_FAILED) which was
manually being cast to a pointer.

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
src/aio-dio-regress/aio-io-setup-with-nonwritable-context-pointer.c
src/fstest.c
src/t_ext4_dax_inline_corruption.c
src/t_ext4_dax_journal_corruption.c
src/t_mmap_stale_pmd.c
src/t_mmap_writev.c

index 092cbb42f9dfa41b327c26974b6e8e350fdf96f2..af381177dd9a037a8a0fd73eb17ddcd42601ad23 100644 (file)
@@ -40,7 +40,7 @@ main(int __attribute__((unused)) argc, char **argv)
        void *addr;
 
        addr = mmap(NULL, 4096, PROT_READ, MAP_SHARED|MAP_ANONYMOUS, 0, 0);
-       if (!addr) {
+       if (addr == MAP_FAILED) {
                perror("mmap");
                exit(1);
        }
index f7e2d3eb4adbea47450a5016673828bcac5623ea..e4b9e081144a9401a84c81aea81ed1f3e61413c6 100644 (file)
@@ -138,7 +138,7 @@ bozo!
                        exit(1);
                }
                p = mmap(NULL, file_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
-               if (p == (char *)-1) {
+               if (p == MAP_FAILED) {
                        perror("mmap");
                        exit(1);
                }
index 4b7d893848aa6f8350ad61989bef99af0b278d16..b52bcc0dcf601c58b021d86b79f1a85b61089e5f 100644 (file)
@@ -37,14 +37,14 @@ int main(int argc, char *argv[])
                err_exit("fd");
 
        data = mmap(NULL, len, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
-       if (!data)
+       if (data == MAP_FAILED)
                err_exit("mmap data");
 
        /* this fallocate turns off inline data and turns on DAX */
        fallocate(fd, 0, 0, PAGE(2));
 
        dax_data = mmap(NULL, len, PROT_READ, MAP_SHARED, fd, 0);
-       if (!dax_data)
+       if (dax_data == MAP_FAILED)
                err_exit("mmap dax_data");
 
        /*
index 18a2acdc9da5614b290a252fd34d2df827289696..fccef8f5b1f7ab392ce96fa560aeb5da5ca614f2 100644 (file)
@@ -60,7 +60,7 @@ int main(int argc, char *argv[])
        fallocate(fd, 0, 0, len);
 
        dax_data = mmap(NULL, len, PROT_READ, MAP_SHARED, fd, 0);
-       if (!dax_data)
+       if (dax_data == MAP_FAILED)
                err_exit("mmap dax_data");
 
        /*
@@ -76,7 +76,7 @@ int main(int argc, char *argv[])
        chattr_cmd(chattr, "+j", file);
 
        data = mmap(NULL, len, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
-       if (!data)
+       if (data == MAP_FAILED)
                err_exit("mmap data");
 
        /*
index b447222775a0a7f46d6402ecc71a05031e188fdc..6a52201c5a81b8a3103fdd210eac3b3720e0b74a 100644 (file)
@@ -41,6 +41,8 @@ int main(int argc, char *argv[])
        ftruncate(fd, MiB(4));
 
        data = mmap(NULL, MiB(2), PROT_READ, MAP_SHARED, fd, MiB(2));
+       if (data == MAP_FAILED)
+               err_exit("mmap");
 
        /*
         * This faults in a 2MiB zero page to satisfy the read.
index e5ca08ab98dcfa7e19656c16138ef8fdfc3f87a2..43acc15fa5ccad3e6ff59d2bb5b30733dc87902c 100644 (file)
@@ -51,7 +51,7 @@ int main(int argc, char **argv)
        if (fd==-1) {perror("open");exit(1);}
 
        base = mmap(NULL,16384,PROT_READ,MAP_SHARED,fd,0);
-       if  (base == (void *)-1) { perror("mmap");exit(1); }
+       if  (base == MAP_FAILED) { perror("mmap");exit(1); }
 
        unlink(new_file);