diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2023-09-20 15:45:56 +0200 |
---|---|---|
committer | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2023-09-21 14:50:01 +0200 |
commit | 5fbfd641aeebdf4b29a0749e13a79a1e59502878 (patch) | |
tree | 2a1cb15afc0039b2142562895ee7d350b2f0694e /crypto/lhash/lhash.c | |
parent | d4f22a915ac50570015a23ad794032c4fb9496cb (diff) |
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 <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22154)
Diffstat (limited to 'crypto/lhash/lhash.c')
-rw-r--r-- | crypto/lhash/lhash.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/lhash/lhash.c b/crypto/lhash/lhash.c index 526af83026..9d2b284ae0 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--; |