mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
New release
This commit is contained in:
parent
bae662923c
commit
c07a88da5d
61 changed files with 378 additions and 167 deletions
|
@ -1,3 +1,7 @@
|
|||
Mon Sep 14 09:38:18 1998 Werner Koch (wk@(none))
|
||||
|
||||
* secmem.c (init_pool): Now mmaps /dev/zero if we do not have MAP_ANON.
|
||||
|
||||
Wed Sep 9 13:52:28 1998 Werner Koch (wk@(none))
|
||||
|
||||
* ttyio.c (do_get): Ctrl-D is now a valid but special character
|
||||
|
|
|
@ -92,6 +92,7 @@ g10_errstr( int err )
|
|||
X(TIME_CONFLICT ,"Timestamp conflict")
|
||||
X(WR_PUBKEY_ALGO ,"Unusable pubkey algorithm")
|
||||
X(FILE_EXISTS ,"File exists")
|
||||
X(WEAK_KEY ,"Weak key")
|
||||
default: p = buf; sprintf(buf, "g10err=%d", err); break;
|
||||
}
|
||||
#undef X
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <unistd.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
|
||||
#include "types.h"
|
||||
|
@ -103,15 +104,38 @@ lock_pool( void *p, size_t n )
|
|||
static void
|
||||
init_pool( size_t n)
|
||||
{
|
||||
size_t pgsize;
|
||||
|
||||
poolsize = n;
|
||||
|
||||
if( disable_secmem )
|
||||
log_bug("secure memory is disabled");
|
||||
|
||||
#if HAVE_MMAP && defined(MAP_ANON)
|
||||
poolsize = (poolsize + 4095) & ~4095;
|
||||
pool = mmap( 0, poolsize, PROT_READ|PROT_WRITE,
|
||||
MAP_PRIVATE|MAP_ANON, -1, 0);
|
||||
#ifdef HAVE_GETPAGESIZE
|
||||
pgsize = getpagesize();
|
||||
#else
|
||||
pgsize = 4096;
|
||||
#endif
|
||||
|
||||
#if HAVE_MMAP
|
||||
poolsize = (poolsize + pgsize -1 ) & ~(pgsize-1);
|
||||
#ifdef MAP_ANONYMOUS
|
||||
pool = mmap( 0, poolsize, PROT_READ|PROT_WRITE,
|
||||
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
|
||||
#else /* map /dev/zero instead */
|
||||
{ int fd;
|
||||
|
||||
fd = open("/dev/zero", O_RDWR);
|
||||
if( fd == -1 ) {
|
||||
log_error("can't open /dev/zero: %s\n", strerror(errno) );
|
||||
pool = (void*)-1;
|
||||
}
|
||||
else {
|
||||
pool = mmap( 0, poolsize, PROT_READ|PROT_WRITE,
|
||||
MAP_PRIVATE, fd, 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if( pool == (void*)-1 )
|
||||
log_error("can't mmap pool of %u bytes: %s - using malloc\n",
|
||||
(unsigned)poolsize, strerror(errno));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue