From: Tomas Mraz Date: Tue, 25 May 2021 07:59:06 +0000 (+0200) Subject: OSSL_DECODER_from_bio: Report an unsupported error when there is none X-Git-Tag: openssl-3.0.0-beta1~375 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4d2d4b4bc1a8515fa5c17906393458a7beef5422;p=thirdparty%2Fopenssl.git OSSL_DECODER_from_bio: Report an unsupported error when there is none When nothing was decoded and there is no error on the stack report something. Fixes #15442 Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/15441) --- diff --git a/crypto/encode_decode/decoder_lib.c b/crypto/encode_decode/decoder_lib.c index c7eac0eddd6..022c1d56e2e 100644 --- a/crypto/encode_decode/decoder_lib.c +++ b/crypto/encode_decode/decoder_lib.c @@ -87,9 +87,10 @@ int OSSL_DECODER_from_bio(OSSL_DECODER_CTX *ctx, BIO *in) const char *input_structure = ctx->input_structure != NULL ? ctx->input_structure : ""; - if (BIO_eof(in) == 0 /* Prevent spurious decoding error */) + if (BIO_eof(in) == 0 || ERR_peek_error() == 0) + /* Prevent spurious decoding error */ ERR_raise_data(ERR_LIB_OSSL_DECODER, ERR_R_UNSUPPORTED, - "Not supported for the data to decode.%s%s%s%s%s%s", + "No supported data to decode. %s%s%s%s%s%s", spaces, input_type_label, input_type, comma, input_structure_label, input_structure); ok = 0;