]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/tdb.c
fix typo reported by Thomas Klausner.
[ppp.git] / pppd / tdb.c
index 7fd58291ec363c0f6eddda56b4d478d9bb0b788e..024b50258e7fc82b6e374e8ca402baa8be99df41 100644 (file)
@@ -210,6 +210,9 @@ static int tdb_oob(TDB_CONTEXT *tdb, tdb_off offset)
        tdb->map_ptr = (void *)mmap(NULL, tdb->map_size, 
                                    tdb->read_only?PROT_READ:PROT_READ|PROT_WRITE,
                                    MAP_SHARED | MAP_FILE, tdb->fd, 0);
+       if (tdb->map_ptr == MAP_FAILED) {
+           tdb->map_ptr = NULL;
+       }
 #endif 
        return 0;
 }
@@ -373,6 +376,9 @@ static int tdb_expand(TDB_CONTEXT *tdb, tdb_off length)
             tdb->map_ptr = (void *)mmap(NULL, tdb->map_size, 
                                         PROT_READ|PROT_WRITE,
                                         MAP_SHARED | MAP_FILE, tdb->fd, 0);
+           if (tdb->map_ptr == MAP_FAILED) {
+               tdb->map_ptr = NULL;
+           }
         }
 #endif
 
@@ -1128,6 +1134,7 @@ TDB_CONTEXT *tdb_open(char *name, int hash_size, int tdb_flags,
             if (tdb.fd == -1) {
                goto fail;
             }
+           (void) fcntl(tdb.fd, F_SETFD, FD_CLOEXEC);
         }
 
        /* ensure there is only one process initialising at once */
@@ -1180,6 +1187,9 @@ TDB_CONTEXT *tdb_open(char *name, int hash_size, int tdb_flags,
             tdb.map_ptr = (void *)mmap(NULL, st.st_size, 
                                        tdb.read_only? PROT_READ : PROT_READ|PROT_WRITE,
                                        MAP_SHARED | MAP_FILE, tdb.fd, 0);
+           if (tdb.map_ptr == MAP_FAILED) {
+               tdb.map_ptr = NULL;
+           }
         }
 #endif