mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-05 12:31:50 +01:00
Use sysconf() when possible as not all platforms have getpagesize().
This commit is contained in:
parent
0b677ba499
commit
3a2e31ff19
@ -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>
|
2007-04-15 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* configure.ac: QNX puts resolver functions in libsocket. From
|
* configure.ac: QNX puts resolver functions in libsocket. From
|
||||||
|
11
acinclude.m4
11
acinclude.m4
@ -420,7 +420,16 @@ define(GNUPG_CHECK_MLOCK,
|
|||||||
{
|
{
|
||||||
char *pool;
|
char *pool;
|
||||||
int err;
|
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 );
|
pool = malloc( 4096 + pgsize );
|
||||||
if( !pool )
|
if( !pool )
|
||||||
|
@ -953,7 +953,7 @@ AC_CHECK_DECLS(getpagesize)
|
|||||||
AC_FUNC_FSEEKO
|
AC_FUNC_FSEEKO
|
||||||
AC_FUNC_VPRINTF
|
AC_FUNC_VPRINTF
|
||||||
AC_FUNC_FORK
|
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(strcasecmp strncasecmp ctermid times unsetenv getpwnam getpwuid)
|
||||||
AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
|
AC_CHECK_FUNCS(memmove gettimeofday getrusage setrlimit clock_gettime)
|
||||||
AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
|
AC_CHECK_FUNCS(atexit raise getpagesize strftime nl_langinfo setlocale)
|
||||||
|
@ -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>
|
2007-04-15 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* argparse.c (default_strusage): Copyright 2007.
|
* argparse.c (default_strusage): Copyright 2007.
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/* secmem.c - memory allocation from a secure heap
|
/* 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.
|
* This file is part of GnuPG.
|
||||||
*
|
*
|
||||||
@ -218,19 +219,22 @@ lock_pool( void *p, size_t n )
|
|||||||
static void
|
static void
|
||||||
init_pool( size_t n)
|
init_pool( size_t n)
|
||||||
{
|
{
|
||||||
size_t pgsize;
|
size_t pgsize=-1;
|
||||||
|
|
||||||
poolsize = n;
|
poolsize = n;
|
||||||
|
|
||||||
if( disable_secmem )
|
if( disable_secmem )
|
||||||
log_bug("secure memory is disabled");
|
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();
|
pgsize = getpagesize();
|
||||||
#else
|
|
||||||
pgsize = 4096;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if(pgsize==-1)
|
||||||
|
pgsize = 4096;
|
||||||
|
|
||||||
#ifdef HAVE_MMAP
|
#ifdef HAVE_MMAP
|
||||||
poolsize = (poolsize + pgsize -1 ) & ~(pgsize-1);
|
poolsize = (poolsize + pgsize -1 ) & ~(pgsize-1);
|
||||||
#ifdef MAP_ANONYMOUS
|
#ifdef MAP_ANONYMOUS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user