diff --git a/ChangeLog b/ChangeLog index 56187899a..4e9fb7c93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,9 @@ PolarSSL ChangeLog Changes * HAVEGE random generator disabled by default +Bugfix + * x509parse_crt() now better handles PEM error situations + = Version 1.1.6 released on 2013-03-11 Bugfix * Fixed net_bind() for specified IP addresses on little endian systems diff --git a/library/x509parse.c b/library/x509parse.c index 7fd167291..42ddd70e2 100644 --- a/library/x509parse.c +++ b/library/x509parse.c @@ -1349,10 +1349,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;