diff --git a/library/x509_csr.c b/library/x509_csr.c index 0b2bb6f3b..bd45c5665 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -78,6 +78,7 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, 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 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, 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) {