Fix possible memory error.
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index 5bedcad..7608d78 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -134,7 +134,7 @@
if( p + cert_len > end )
return( POLARSSL_ERR_SSL_BAD_INPUT_DATA );
- session->peer_cert = polarssl_malloc( cert_len );
+ session->peer_cert = polarssl_malloc( sizeof( x509_cert ) );
if( session->peer_cert == NULL )
return( POLARSSL_ERR_SSL_MALLOC_FAILED );
@@ -143,8 +143,8 @@
if( ( ret = x509parse_crt( session->peer_cert, p, cert_len ) ) != 0 )
{
+ x509_free( session->peer_cert );
polarssl_free( session->peer_cert );
- free( session->peer_cert );
session->peer_cert = NULL;
return( ret );
}