[git] GCRYPT - branch, LIBGCRYPT-1.8-BRANCH, updated. libgcrypt-1.8.1-3-gda127f7
by NIIBE Yutaka
cvs at cvs.gnupg.org
Thu Nov 9 03:03:12 CET 2017
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU crypto library".
The branch, LIBGCRYPT-1.8-BRANCH has been updated
via da127f7505ff7681fc9dbfbf332121d2998e88aa (commit)
from 71a07704ad98b7c3b776629336fbffff1dfeaaeb (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit da127f7505ff7681fc9dbfbf332121d2998e88aa
Author: NIIBE Yutaka <gniibe at fsij.org>
Date: Thu Nov 9 10:59:33 2017 +0900
Fix secmem test for machine with larger page.
* tests/t-secmem.c (main): Detect page size and setup chunk size.
* src/secmem.c (init_pool): Simplify the expression.
--
GnuPG-bug-id: 3351
Signed-off-by: NIIBE Yutaka <gniibe at fsij.org>
diff --git a/src/secmem.c b/src/secmem.c
index 86de72d..f7ad1f6 100644
--- a/src/secmem.c
+++ b/src/secmem.c
@@ -407,7 +407,7 @@ init_pool (pooldesc_t *pool, size_t n)
# else
pgsize_val = -1;
# endif
- pgsize = (pgsize_val != -1 && pgsize_val > 0)? pgsize_val:DEFAULT_PAGE_SIZE;
+ pgsize = (pgsize_val > 0)? pgsize_val:DEFAULT_PAGE_SIZE;
pool->size = (pool->size + pgsize - 1) & ~(pgsize - 1);
# ifdef MAP_ANONYMOUS
diff --git a/tests/t-secmem.c b/tests/t-secmem.c
index 8f4cce1..ecbc55a 100644
--- a/tests/t-secmem.c
+++ b/tests/t-secmem.c
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <string.h>
#include <errno.h>
+#include <unistd.h>
#define PGM "t-secmem"
@@ -32,6 +33,11 @@
#include "../src/gcrypt-testapi.h"
+#define DEFAULT_PAGE_SIZE 4096
+#define MINIMUM_POOL_SIZE 16384
+static size_t pool_size;
+static size_t chunk_size;
+
static void
test_secmem (void)
{
@@ -42,12 +48,12 @@ test_secmem (void)
memset (a, 0, sizeof a);
/* Allocating 28*512=14k should work in the default 16k pool even
- * with extrem alignment requirements. */
+ * with extra alignment requirements. */
for (i=0; i < DIM(a); i++)
- a[i] = gcry_xmalloc_secure (512);
+ a[i] = gcry_xmalloc_secure (chunk_size);
/* Allocating another 2k should fail for the default 16k pool. */
- b = gcry_malloc_secure (2048);
+ b = gcry_malloc_secure (chunk_size*4);
if (b)
fail ("allocation did not fail as expected\n");
@@ -68,7 +74,7 @@ test_secmem_overflow (void)
/* Allocating 150*512=75k should require more than one overflow buffer. */
for (i=0; i < DIM(a); i++)
{
- a[i] = gcry_xmalloc_secure (512);
+ a[i] = gcry_xmalloc_secure (chunk_size);
if (verbose && !(i %40))
xgcry_control (GCRYCTL_DUMP_SECMEM_STATS, 0 , 0);
}
@@ -111,6 +117,18 @@ int
main (int argc, char **argv)
{
int last_argc = -1;
+ long int pgsize_val = -1;
+ size_t pgsize;
+
+# if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
+ pgsize_val = sysconf (_SC_PAGESIZE);
+# elif defined(HAVE_GETPAGESIZE)
+ pgsize_val = getpagesize ();
+# endif
+ pgsize = (pgsize_val > 0)? pgsize_val : DEFAULT_PAGE_SIZE;
+
+ pool_size = (MINIMUM_POOL_SIZE + pgsize - 1) & ~(pgsize - 1);
+ chunk_size = pool_size / 32;
if (argc)
{ argc--; argv++; }
@@ -153,7 +171,7 @@ main (int argc, char **argv)
if (debug)
xgcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1u , 0);
xgcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
- xgcry_control (GCRYCTL_INIT_SECMEM, 16384, 0);
+ xgcry_control (GCRYCTL_INIT_SECMEM, pool_size, 0);
gcry_set_outofcore_handler (outofcore_handler, NULL);
xgcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
-----------------------------------------------------------------------
Summary of changes:
src/secmem.c | 2 +-
tests/t-secmem.c | 28 +++++++++++++++++++++++-----
2 files changed, 24 insertions(+), 6 deletions(-)
hooks/post-receive
--
The GNU crypto library
http://git.gnupg.org
More information about the Gnupg-commits
mailing list