summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-06-21 19:50:21 +0000
committerJeremy Allison <jra@samba.org>2001-06-21 19:50:21 +0000
commitb77c8b536d4b6d2162f4932227f01cffb730c645 (patch)
tree3bca5a1556a17e1ca196fc4bb79ff23d632961d2
parent6b4a70cd8285c1e4d452e3af7df070b4c446ff54 (diff)
downloadsamba-b77c8b536d4b6d2162f4932227f01cffb730c645.tar.gz
samba-b77c8b536d4b6d2162f4932227f01cffb730c645.tar.xz
samba-b77c8b536d4b6d2162f4932227f01cffb730c645.zip
When mmap fails it returns -1 *NOT NULL*.
This got regressed somehow..... Jeremy.
-rw-r--r--source/tdb/tdb.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/tdb/tdb.c b/source/tdb/tdb.c
index 4d4fb79383e..c27f03fc35d 100644
--- a/source/tdb/tdb.c
+++ b/source/tdb/tdb.c
@@ -87,7 +87,13 @@ static void tdb_mmap(TDB_CONTEXT *tdb)
tdb->map_ptr = mmap(NULL, tdb->map_size,
PROT_READ|(tdb->read_only? 0:PROT_WRITE),
MAP_SHARED|MAP_FILE, tdb->fd, 0);
- if (!tdb->map_ptr) {
+
+ /*
+ * NB. When mmap fails it returns -1 *NOT* NULL !!!!
+ */
+
+ if (tdb->map_ptr == (void *)-1) {
+ tdb->map_ptr = NULL;
TDB_LOG((tdb, 2, "tdb_mmap failed for size %d (%s)\n",
tdb->map_size, strerror(errno)));
}