From: Bernd Edlinger Date: Wed, 20 Sep 2023 13:45:56 +0000 (+0200) Subject: Fix error handling in lhash contract X-Git-Tag: openssl-3.2.0-alpha2~40 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5fbfd641aeebdf4b29a0749e13a79a1e59502878;p=thirdparty%2Fopenssl.git Fix error handling in lhash contract When the realloc fails in contract, this not a fatal error, since the memory is only shrinked. It is also no option to exit the function at this point, since that would leave the hash table in an inconsistent state. Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/22154) --- diff --git a/crypto/lhash/lhash.c b/crypto/lhash/lhash.c index 526af830260..9d2b284ae0f 100644 --- a/crypto/lhash/lhash.c +++ b/crypto/lhash/lhash.c @@ -260,12 +260,12 @@ static void contract(OPENSSL_LHASH *lh) if (n == NULL) { /* fputs("realloc error in lhash", stderr); */ lh->error++; - return; + } else { + lh->b = n; } lh->num_alloc_nodes /= 2; lh->pmax /= 2; lh->p = lh->pmax - 1; - lh->b = n; } else lh->p--;