diff --git a/src/ssl_asn1.c b/src/ssl_asn1.c index f60d45036..d501b6a68 100644 --- a/src/ssl_asn1.c +++ b/src/ssl_asn1.c @@ -2085,11 +2085,13 @@ int wolfSSL_ASN1_get_object(const unsigned char **in, long *len, int *tag, } if (!err) { /* Length at least 1, parameters valid - cannot fail to get tag. */ - GetASNTag(*in, &inOutIdx, &t, (word32)inLen); - /* Get length in DER encoding. */ - if (GetLength_ex(*in, &inOutIdx, &l, (word32)inLen, 0) < 0) { - WOLFSSL_MSG("GetLength error"); - err = 1; + err = GetASNTag(*in, &inOutIdx, &t, (word32)inLen); + if (!err){ + /* Get length in DER encoding. */ + if (GetLength_ex(*in, &inOutIdx, &l, (word32)inLen, 0) < 0) { + WOLFSSL_MSG("GetLength error"); + err = 1; + } } } if (!err) { diff --git a/wolfcrypt/src/evp.c b/wolfcrypt/src/evp.c index 5c9ac3e8d..7b27ffa9c 100644 --- a/wolfcrypt/src/evp.c +++ b/wolfcrypt/src/evp.c @@ -11664,7 +11664,10 @@ static int PrintHexWithColon(WOLFSSL_BIO* out, const byte* input, for (in = 0; in < (word32)inlen && ret == WOLFSSL_SUCCESS; in += WOLFSSL_EVP_PKEY_PRINT_DIGITS_PER_LINE ) { - Indent(out, indent); + if (Indent(out, indent) < 0) { + ret = WOLFSSL_FAILURE; + break; + } for (i = 0; (i < WOLFSSL_EVP_PKEY_PRINT_DIGITS_PER_LINE) && (in + i < (word32)inlen); i++) {