summaryrefslogtreecommitdiff
path: root/src/secmem.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2007-04-16 15:09:30 +0000
committerWerner Koch <wk@gnupg.org>2007-04-16 15:09:30 +0000
commit591697fc7621e8aa16abb3f60dc297ea9af1048f (patch)
tree76fb0761768c69d50818ff9f88f6aeeb8fb83b33 /src/secmem.c
parentef72b801762550f0ec1dd483e36ab95fe8f6629e (diff)
downloadlibgcrypt-591697fc7621e8aa16abb3f60dc297ea9af1048f.tar.gz
./
* configure.ac: Check for sysconf. * acinclude.m4 (GNUPG_CHECK_MLOCK): Try to use sysconf to get the page size and use getpagesize only then if available. cipher/ * ecc.c (_gcry_ecc_generate): Renamed DUMMY to CURVE and use it. src/ * secmem.c (init_pool): Use sysconf() if available to determine page size.
Diffstat (limited to 'src/secmem.c')
-rw-r--r--src/secmem.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/secmem.c b/src/secmem.c
index 0c11f826..2d603a2a 100644
--- a/src/secmem.c
+++ b/src/secmem.c
@@ -340,6 +340,7 @@ static void
init_pool (size_t n)
{
size_t pgsize;
+ long int pgsize_val;
memblock_t *mb;
pool_size = n;
@@ -347,11 +348,15 @@ init_pool (size_t n)
if (disable_secmem)
log_bug ("secure memory is disabled");
-#ifdef HAVE_GETPAGESIZE
- pgsize = getpagesize ();
+#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
+ pgsize_val = sysconf (_SC_PAGESIZE);
+#elif defined(HAVE_GETPAGESIZE)
+ pgsize_val = getpagesize ();
#else
- pgsize = DEFAULT_PAGE_SIZE;
+ pgsize_val = -1;
#endif
+ pgsize = (pgsize_val != -1 && pgsize_val > 0)? pgsize_val:DEFAULT_PAGE_SIZE;
+
#if HAVE_MMAP
pool_size = (pool_size + pgsize - 1) & ~(pgsize - 1);