X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Fio.c;fp=ccan%2Ftdb2%2Fio.c;h=31756de341d8fd43d17a41d57c41284cbb650227;hp=240a1c038da368c274363cb3cfcd37945a517a0e;hb=0f95489bd34ab05869e0bfaabf45149b3b161f28;hpb=15cb319b3e5d07b70fb2fef7188c11c90d015de4 diff --git a/ccan/tdb2/io.c b/ccan/tdb2/io.c index 240a1c03..31756de3 100644 --- a/ccan/tdb2/io.c +++ b/ccan/tdb2/io.c @@ -48,8 +48,13 @@ void tdb_mmap(struct tdb_context *tdb) if (tdb->flags & TDB_NOMMAP) return; - tdb->file->map_ptr = mmap(NULL, tdb->file->map_size, tdb->mmap_flags, - MAP_SHARED, tdb->file->fd, 0); + /* size_t can be smaller than off_t. */ + if ((size_t)tdb->file->map_size == tdb->file->map_size) { + tdb->file->map_ptr = mmap(NULL, tdb->file->map_size, + tdb->mmap_flags, + MAP_SHARED, tdb->file->fd, 0); + } else + tdb->file->map_ptr = MAP_FAILED; /* * NB. When mmap fails it returns MAP_FAILED *NOT* NULL !!!!