diff --git a/library/x509parse.c b/library/x509parse.c index 47bcdeb48..7603eca3b 100644 --- a/library/x509parse.c +++ b/library/x509parse.c @@ -1430,10 +1430,20 @@ int x509parse_crt( x509_cert *chain, const unsigned char *buf, size_t buflen ) buflen -= use_len; buf += use_len; } + else if( ret == POLARSSL_ERR_PEM_BAD_INPUT_DATA ) + { + return( ret ); + } else if( ret != POLARSSL_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) { pem_free( &pem ); + /* + * PEM header and footer were found + */ + buflen -= use_len; + buf += use_len; + if( first_error == 0 ) first_error = ret;