Fix handling of long PSK identities

fixes #238
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 80dbe8a..793d241 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -5457,6 +5457,13 @@
     if( psk_len > MBEDTLS_PSK_MAX_LEN )
         return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
 
+    /* Identity len will be encoded on two bytes */
+    if( ( psk_identity_len >> 16 ) != 0 ||
+        psk_identity_len > MBEDTLS_SSL_MAX_CONTENT_LEN )
+    {
+        return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
+    }
+
     if( conf->psk != NULL || conf->psk_identity != NULL )
     {
         mbedtls_free( conf->psk );