1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-18 00:49:50 +02:00

Use sysconf() when possible as not all platforms have getpagesize().

This commit is contained in:
David Shaw 2007-04-16 13:37:09 +00:00
parent 0b677ba499
commit 3a2e31ff19
5 changed files with 32 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2007-04-16 David Shaw <dshaw@jabberwocky.com>
* acinclude.m4: Use sysconf() if available to avoid a false
positive on HAVE_BROKEN_MLOCK when checking for page size.
* configure.ac: Check for sysconf.
2007-04-15 David Shaw <dshaw@jabberwocky.com>
* configure.ac: QNX puts resolver functions in libsocket. From

View File

@ -420,7 +420,16 @@ define(GNUPG_CHECK_MLOCK,
{
char *pool;
int err;
long int pgsize = getpagesize();
long int pgsize;
#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
pgsize = sysconf(_SC_PAGESIZE);
#elif defined(HAVE_GETPAGESIZE)
pgsize = getpagesize();
#endif
if(pgsize==-1)
pgsize = 4096;
pool = malloc( 4096 + pgsize );
if( !pool )

View File

@ -953,7 +953,7 @@ AC_CHECK_DECLS(getpagesize)
AC_FUNC_FSEEKO
AC_FUNC_VPRINTF
AC_FUNC_FORK
AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr strtoul mmap)
AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr strtoul mmap sysconf)
AC_CHECK_FUNCS(strcasecmp strncasecmp ctermid times unsetenv getpwnam getpwuid)
AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)

View File

@ -1,3 +1,8 @@
2007-04-16 David Shaw <dshaw@jabberwocky.com>
* secmem.c (init_pool): Use sysconf() if available to determine
page size.
2007-04-15 David Shaw <dshaw@jabberwocky.com>
* argparse.c (default_strusage): Copyright 2007.

View File

@ -1,5 +1,6 @@
/* secmem.c - memory allocation from a secure heap
* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
* 2007 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@ -218,19 +219,22 @@ lock_pool( void *p, size_t n )
static void
init_pool( size_t n)
{
size_t pgsize;
size_t pgsize=-1;
poolsize = n;
if( disable_secmem )
log_bug("secure memory is disabled");
#ifdef HAVE_GETPAGESIZE
#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
pgsize = sysconf(_SC_PAGESIZE);
#elif defined(HAVE_GETPAGESIZE)
pgsize = getpagesize();
#else
pgsize = 4096;
#endif
if(pgsize==-1)
pgsize = 4096;
#ifdef HAVE_MMAP
poolsize = (poolsize + pgsize -1 ) & ~(pgsize-1);
#ifdef MAP_ANONYMOUS