diff --git a/ChangeLog.d/fix-null-pointer-dereference.txt b/ChangeLog.d/fix-null-pointer-dereference.txt new file mode 100644 index 0000000000..1eb3c416a8 --- /dev/null +++ b/ChangeLog.d/fix-null-pointer-dereference.txt @@ -0,0 +1,4 @@ +Security + * Fix a NULL pointer dereference in mbedtls_x509_string_to_names() when + mbedtls_calloc() fails to allocate memory. This was caused by failing to + check whether mbedtls_calloc() returned NULL. diff --git a/library/x509_create.c b/library/x509_create.c index 370eb9b2e1..e424cbb47c 100644 --- a/library/x509_create.c +++ b/library/x509_create.c @@ -487,6 +487,9 @@ int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *nam } else { oid.len = strlen(attr_descr->oid); oid.p = mbedtls_calloc(1, oid.len); + if (oid.p == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; + } memcpy(oid.p, attr_descr->oid, oid.len); numericoid = 0; }