diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-08-10 23:41:24 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-08-10 23:41:24 +0000 |
commit | e8a2a215a7b73924da50b1407f107cfccd4fe979 (patch) | |
tree | 191eaa9f00632ba7c06a2e38aa3bdc7d9d91f45e /src/gdbmsetopt.c | |
parent | 19939b60f76d30433a46902523e139869d782ef1 (diff) | |
download | gdbm-e8a2a215a7b73924da50b1407f107cfccd4fe979.tar.gz gdbm-e8a2a215a7b73924da50b1407f107cfccd4fe979.tar.bz2 |
Protect invocations of _gdbm_mapped functions with #if HAVE_MMAP.
Diffstat (limited to 'src/gdbmsetopt.c')
-rw-r--r-- | src/gdbmsetopt.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gdbmsetopt.c b/src/gdbmsetopt.c index f9494d0..7961304 100644 --- a/src/gdbmsetopt.c +++ b/src/gdbmsetopt.c @@ -151,6 +151,7 @@ gdbm_setopt (GDBM_FILE dbf, int optflag, void *optval, int optlen) /* Mmap mode */ case GDBM_SETMMAP: +#if HAVE_MMAP if ((n = getbool (optval, optlen)) == -1) return -1; __fsync (dbf); @@ -168,6 +169,10 @@ gdbm_setopt (GDBM_FILE dbf, int optflag, void *optval, int optlen) _gdbm_mapped_unmap (dbf); dbf->memory_mapping = FALSE; } +#else + gdbm_errno = GDBM_OPT_ILLEGAL; + return -1; +#endif break; case GDBM_GETMMAP: @@ -181,6 +186,7 @@ gdbm_setopt (GDBM_FILE dbf, int optflag, void *optval, int optlen) /* Maximum size of a memory mapped region */ case GDBM_SETMAXMAPSIZE: +#if HAVE_MMAP { size_t page_size = sysconf (_SC_PAGESIZE); @@ -191,6 +197,10 @@ gdbm_setopt (GDBM_FILE dbf, int optflag, void *optval, int optlen) _gdbm_mapped_init (dbf); break; } +#else + gdbm_errno = GDBM_OPT_ILLEGAL; + return -1; +#endif case GDBM_GETMAXMAPSIZE: if (!optval || optlen != sizeof (size_t)) |