Fix potential buffer overread of size 1
diff --git a/library/x509parse.c b/library/x509parse.c
index 9d62e9e..488ae8c 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -193,6 +193,11 @@
         return( POLARSSL_ERR_X509_CERT_INVALID_ALG + ret );
 
     end = *p + len;
+
+    if( len < 1 )
+        return( POLARSSL_ERR_X509_CERT_INVALID_ALG +
+                POLARSSL_ERR_ASN1_OUT_OF_DATA );
+
     alg->tag = **p;
 
     if( ( ret = asn1_get_tag( p, end, &alg->len, ASN1_OID ) ) != 0 )
@@ -240,6 +245,11 @@
         return( POLARSSL_ERR_X509_CERT_INVALID_NAME + ret );
 
     oid = &cur->oid;
+
+    if( len < 1 )
+        return( POLARSSL_ERR_X509_CERT_INVALID_NAME +
+                POLARSSL_ERR_ASN1_OUT_OF_DATA );
+
     oid->tag = **p;
 
     if( ( ret = asn1_get_tag( p, end, &oid->len, ASN1_OID ) ) != 0 )