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;
}
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
if (tdb.fd == -1) {
goto fail;
}
+ (void) fcntl(tdb.fd, F_SETFD, FD_CLOEXEC);
}
/* ensure there is only one process initialising at once */
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