diff -up libgcrypt-1.8.0/tests/t-secmem.c.build libgcrypt-1.8.0/tests/t-secmem.c --- libgcrypt-1.8.0/tests/t-secmem.c.build 2017-01-18 15:24:25.000000000 +0100 +++ libgcrypt-1.8.0/tests/t-secmem.c 2017-08-16 15:12:48.948224849 +0200 @@ -25,6 +25,7 @@ #include #include #include +#include #define PGM "t-secmem" @@ -37,17 +38,21 @@ test_secmem (void) { void *a[28]; void *b; + long oversize; int i; memset (a, 0, sizeof a); + oversize = sysconf (_SC_PAGESIZE); + oversize = oversize <= 16384 ? 2048 : oversize - (16384 - 2048); + /* Allocating 28*512=14k should work in the default 16k pool even * with extrem alignment requirements. */ for (i=0; i < DIM(a); i++) a[i] = gcry_xmalloc_secure (512); /* Allocating another 2k should fail for the default 16k pool. */ - b = gcry_malloc_secure (2048); + b = gcry_malloc_secure (oversize); if (b) fail ("allocation did not fail as expected\n");