Add end-of-buffer check to prevent heap-buffer-overflow
Dereference of *p should not happen when it points past the end of the
buffer.
Internal reference: IOTSSL-1663
diff --git a/library/pkparse.c b/library/pkparse.c
index f0a12f9..e21470b 100644
--- a/library/pkparse.c
+++ b/library/pkparse.c
@@ -175,6 +175,10 @@
{
int ret;
+ if ( end - *p < 1 )
+ return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT +
+ MBEDTLS_ERR_ASN1_OUT_OF_DATA );
+
/* Tag may be either OID or SEQUENCE */
params->tag = **p;
if( params->tag != MBEDTLS_ASN1_OID