Fix Issue #8687

Signed-off-by: Jonathan Winzig <jwinzig@hilscher.com>
diff --git a/library/x509_create.c b/library/x509_create.c
index 73789da..4ffd3b6 100644
--- a/library/x509_create.c
+++ b/library/x509_create.c
@@ -195,6 +195,10 @@
 {
     mbedtls_asn1_named_data *cur;
 
+    if (val_len > (SIZE_MAX  - 1)) {
+        return MBEDTLS_ERR_X509_BAD_INPUT_DATA;
+    }
+
     if ((cur = mbedtls_asn1_store_named_data(head, oid, oid_len,
                                              NULL, val_len + 1)) == NULL) {
         return MBEDTLS_ERR_X509_ALLOC_FAILED;