- Fixed potential memory corruption on miscrafted client messages (found by Frama-C team at CEA LIST)

diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index bbe8388..64012e5 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -880,6 +880,13 @@
     /*
      * Always compute the MAC (RFC4346, CBCTIME).
      */
+    if( ssl->in_msglen <= ssl->maclen + padlen )
+    {
+        SSL_DEBUG_MSG( 1, ( "msglen (%d) < maclen (%d) + padlen (%d)",
+                    ssl->in_msglen, ssl->maclen, padlen ) );
+        return( POLARSSL_ERR_SSL_INVALID_MAC );
+    }
+
     ssl->in_msglen -= ( ssl->maclen + padlen );
 
     ssl->in_hdr[3] = (unsigned char)( ssl->in_msglen >> 8 );