]> git.ipfire.org Git - thirdparty/openssl.git/commit
Fix use of OPENSSL_realloc in provider
authorTodd Short <tshort@akamai.com>
Mon, 31 Aug 2020 23:59:43 +0000 (19:59 -0400)
committerBenjamin Kaduk <bkaduk@akamai.com>
Wed, 2 Sep 2020 22:21:11 +0000 (15:21 -0700)
commit2b748d722b6ac560d122ea2dcf8d09fe6f03124b
tree13c4f50f7e76a59d03eb755d790ab72dd1c86d23
parent2c0e356ef7fdbb117c9294b57deb67be66db3470
Fix use of OPENSSL_realloc in provider

Fix OPENSSL_realloc failure case; `provider->operation_bits` memory
is lost when `OPENSSL_realloc()` returns NULL.

`operation_bits_sz` is never set to the length of the allocated array.
This means that operation_bits is always reallocated in
`ossl_provider_set_operation_bit()`, possibly shrinking the array.
In addition, it means that the `memset()` always zeros out the
whole reallocated array, not just the new part. Also, because
`operation_bits_sz` is always zero, the value of `*result` in
`ossl_provider_test_operation_bit()` will always be zero.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Ben Kaduk <kaduk@mit.edu>
(Merged from https://github.com/openssl/openssl/pull/12760)
crypto/provider_core.c