aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/ChangeLog5
-rw-r--r--util/secmem.c12
2 files changed, 12 insertions, 5 deletions
diff --git a/util/ChangeLog b/util/ChangeLog
index 70a95c758..a67547395 100644
--- a/util/ChangeLog
+++ b/util/ChangeLog
@@ -1,3 +1,8 @@
+2007-04-16 Werner Koch <[email protected]>
+
+ * secmem.c (init_pool): Avoid assigning a negative value to a
+ size_t.
+
2007-04-16 David Shaw <[email protected]>
* secmem.c (init_pool): Use sysconf() if available to determine
diff --git a/util/secmem.c b/util/secmem.c
index dc8a8f087..5a4affd42 100644
--- a/util/secmem.c
+++ b/util/secmem.c
@@ -219,7 +219,8 @@ lock_pool( void *p, size_t n )
static void
init_pool( size_t n)
{
- size_t pgsize=-1;
+ long int pgsize_val;
+ size_t pgsize;
poolsize = n;
@@ -227,13 +228,14 @@ init_pool( size_t n)
log_bug("secure memory is disabled");
#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
- pgsize = sysconf(_SC_PAGESIZE);
+ pgsize_val = sysconf (_SC_PAGESIZE);
#elif defined(HAVE_GETPAGESIZE)
- pgsize = getpagesize();
+ pgsize_val = getpagesize ();
+#else
+ pgsize_val = -1;
#endif
+ pgsize = (pgsize_val != -1 && pgsize_val > 0)? pgsize_val : 4096;
- if(pgsize==-1)
- pgsize = 4096;
#ifdef HAVE_MMAP
poolsize = (poolsize + pgsize -1 ) & ~(pgsize-1);