Prevent allocations of size 0 in sh_init, which are not possible with the default...
authorGuido Vranken <guidovranken@gmail.com>
Mon, 13 Feb 2017 00:36:43 +0000 (01:36 +0100)
committerRich Salz <rsalz@openssl.org>
Tue, 14 Feb 2017 19:28:34 +0000 (14:28 -0500)
commit7f07149d25f8d7e00e9350ff2f064a4d25c1a13d
tree8326886db7b94f0631009b17719c629b66f547e3
parent20967afb7f4a2613a6d7230bcbdf99140bccd677
Prevent allocations of size 0 in sh_init, which are not possible with the default OPENSSL_zalloc, but are possible if the user has installed their own allocator using CRYPTO_set_mem_functions. If the 0-allocations succeeds, the secure heap code will later access (at least) the first byte of that space, which is technically an OOB access. This could lead to problems with some custom allocators that only return a valid pointer for subsequent free()-ing, and do not expect that the pointer is actually dereferenced.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2605)
crypto/mem_sec.c