From: Bernd Edlinger Date: Wed, 8 Dec 2021 13:14:48 +0000 (+0100) Subject: Minor code cleanup in o_names_init X-Git-Tag: openssl-3.2.0-alpha1~3237 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c50bf14450f3cd242f2211ca7e500191053d8050;p=thirdparty%2Fopenssl.git Minor code cleanup in o_names_init This might result in a small memory leak. Reviewed-by: Tomas Mraz Reviewed-by: Matt Caswell Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/17238) --- diff --git a/crypto/objects/o_names.c b/crypto/objects/o_names.c index 05aa8c44aad..92152eeb667 100644 --- a/crypto/objects/o_names.c +++ b/crypto/objects/o_names.c @@ -66,8 +66,14 @@ static int obj_name_cmp(const OBJ_NAME *a, const OBJ_NAME *b); static CRYPTO_ONCE init = CRYPTO_ONCE_STATIC_INIT; DEFINE_RUN_ONCE_STATIC(o_names_init) { - names_lh = lh_OBJ_NAME_new(obj_name_hash, obj_name_cmp); + names_lh = NULL; obj_lock = CRYPTO_THREAD_lock_new(); + if (obj_lock != NULL) + names_lh = lh_OBJ_NAME_new(obj_name_hash, obj_name_cmp); + if (names_lh == NULL) { + CRYPTO_THREAD_lock_free(obj_lock); + obj_lock = NULL; + } return names_lh != NULL && obj_lock != NULL; }