mirror of
https://github.com/openssl/openssl.git
synced 2024-12-14 12:34:02 +08:00
Fix CRYPTO_clear_realloc() bug.
If allocation in CRYPTO_clear_realloc() fails don't free up the original buffer: this is consistent with the behaviour of realloc(3) and is expected in other places in OpenSSL. Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
This commit is contained in:
parent
e38bd9489a
commit
2ac7753c10
@ -201,9 +201,10 @@ void *CRYPTO_clear_realloc(void *str, size_t old_len, size_t num,
|
||||
}
|
||||
|
||||
ret = CRYPTO_malloc(num, file, line);
|
||||
if (ret)
|
||||
if (ret != NULL) {
|
||||
memcpy(ret, str, old_len);
|
||||
CRYPTO_clear_free(str, old_len, file, line);
|
||||
CRYPTO_clear_free(str, old_len, file, line);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user