From: Matt Caswell Date: Thu, 12 Nov 2015 15:11:34 +0000 (+0000) Subject: Check error return from sysconf in secure memory code X-Git-Tag: OpenSSL_1_1_0-pre1~269 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9ae720b4dc30ab52b20965c5d6f60ecc6169b8c8;p=openssl Check error return from sysconf in secure memory code We use the sysconf function to provide details about the page size in the secure memory code. This function can return -1 on error so we should check for this before proceeding. Reviewed-by: Kurt Roeckx --- diff --git a/crypto/sec_mem.c b/crypto/sec_mem.c index 2e29219d52..0b2f1fda77 100644 --- a/crypto/sec_mem.c +++ b/crypto/sec_mem.c @@ -333,8 +333,18 @@ static int sh_init(size_t size, int minsize) goto err; /* Allocate space for heap, and two extra pages as guards */ -#ifdef _SC_PAGE_SIZE - pgsize = (size_t)sysconf(_SC_PAGE_SIZE); +#if defined(_SC_PAGE_SIZE) || defined (_SC_PAGESIZE) + { +# if defined(_SC_PAGE_SIZE) + long tmppgsize = sysconf(_SC_PAGE_SIZE); +# else + long tmppgsize = sysconf(_SC_PAGESIZE); +# endif + if (tmppgsize < 1) + pgsize = PAGE_SIZE; + else + pgsize = (size_t)tmppgsize; + } #else pgsize = PAGE_SIZE; #endif