Prevent potential NULL pointer dereference in ssl_read_record()
diff --git a/ChangeLog b/ChangeLog
index 5fe77e4..f08432a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,8 @@
This affects certificates in the user-supplied chain except the top
certificate. If the user-supplied chain contains only one certificates,
it is not affected (ie, its notAfter date is properly checked).
+ * Prevent potential NULL pointer dereference in ssl_read_record() (found by
+ TrustInSoft)
Bugfix
* The length of various ClientKeyExchange messages was not properly checked.
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 681b7c3..8d43488 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -2087,7 +2087,8 @@
return( POLARSSL_ERR_SSL_INVALID_RECORD );
}
- ssl->handshake->update_checksum( ssl, ssl->in_msg, ssl->in_hslen );
+ if( ssl->state != SSL_HANDSHAKE_OVER )
+ ssl->handshake->update_checksum( ssl, ssl->in_msg, ssl->in_hslen );
return( 0 );
}