Fixes #8377.
Signed-off-by: Matthias Schulz <mschulz@hilscher.com>
diff --git a/library/x509_csr.c b/library/x509_csr.c
index 0b2bb6f..bd45c56 100644
--- a/library/x509_csr.c
+++ b/library/x509_csr.c
@@ -78,6 +78,7 @@
int ret;
size_t len;
unsigned char *end_ext_data;
+ int critical;
while (*p < end) {
mbedtls_x509_buf extn_oid = { 0, 0, NULL };
int ext_type = 0;
@@ -100,6 +101,9 @@
extn_oid.p = *p;
*p += extn_oid.len;
+ /* Get and ignore optional critical flag */
+ (void)mbedtls_asn1_get_bool(p, end_ext_data, &critical);
+
/* Data should be octet string type */
if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len,
MBEDTLS_ASN1_OCTET_STRING)) != 0) {