Browse Source

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 <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15441)
master
Tomas Mraz 1 year ago
parent
commit
4d2d4b4bc1
1 changed files with 3 additions and 2 deletions
  1. +3
    -2
      crypto/encode_decode/decoder_lib.c

+ 3
- 2
crypto/encode_decode/decoder_lib.c View File

@ -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;


Loading…
Cancel
Save