diff options
author | Neil Horman <nhorman@openssl.org> | 2023-12-16 21:32:48 +0100 |
---|---|---|
committer | Neil Horman <nhorman@openssl.org> | 2024-02-16 14:34:11 +0100 |
commit | cf57c3ecfa416afbc47d36633981034809ee6792 (patch) | |
tree | 12943c9c6c0f9a783d2351aaa962f084e66778b4 /crypto/encode_decode | |
parent | Add CHANGES: Fixed SSL_export_keying_material for QUIC. (diff) | |
download | openssl-cf57c3ecfa416afbc47d36633981034809ee6792.tar.xz openssl-cf57c3ecfa416afbc47d36633981034809ee6792.zip |
Check for NULL cleanup function before using it in encoder_process
encoder_process assumes a cleanup function has been set in the currently
in-use encoder during processing, which can lead to segfaults if said
function hasn't been set
Add a NULL check for this condition, returning -1 if it is not set
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23069)
Diffstat (limited to 'crypto/encode_decode')
-rw-r--r-- | crypto/encode_decode/encoder_lib.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/crypto/encode_decode/encoder_lib.c b/crypto/encode_decode/encoder_lib.c index 28dae99dc8..945b5ba148 100644 --- a/crypto/encode_decode/encoder_lib.c +++ b/crypto/encode_decode/encoder_lib.c @@ -59,6 +59,11 @@ int OSSL_ENCODER_to_bio(OSSL_ENCODER_CTX *ctx, BIO *out) return 0; } + if (ctx->cleanup == NULL || ctx->construct == NULL) { + ERR_raise(ERR_LIB_OSSL_ENCODER, ERR_R_INIT_FAIL); + return 0; + } + return encoder_process(&data) > 0; } |