Commit 0ab1125b1d for openssl.org

commit 0ab1125b1d45200de7fa71138f2f9e7fee0838ad
Author: Greensi7 <adam.tabak04@gmail.com>
Date:   Fri Sep 4 22:28:32 2026 +0200

    Add X509_REQ_dup MFAIL test

    Test targeting NULL dereference and memory leak in ASN1_item_dup().

    Reviewed-by: Mounir Idrassi <mounir.idrassi@idrix.fr>
    Reviewed-by: Bob Beck <beck@openssl.org>
    Merge-date: Tue Sep 15 10:30:31 2026
    Merged-from: https://github.com/openssl/openssl/pull/32691

diff --git a/test/asn1_internal_test.c b/test/asn1_internal_test.c
index c5a9e41a65..dd831fae7b 100644
--- a/test/asn1_internal_test.c
+++ b/test/asn1_internal_test.c
@@ -683,6 +683,33 @@ err:
     return ok;
 }

+#ifndef OPENSSL_NO_ECX
+static int test_asn1_item_dup_mfail(void)
+{
+    EVP_PKEY *key = NULL;
+    X509_REQ *src = NULL, *dup = NULL;
+    int ret = -1;
+
+    if (!TEST_ptr(key = EVP_PKEY_Q_keygen(NULL, NULL, "ED25519"))
+        || !TEST_ptr(src = X509_REQ_new_ex(NULL, ""))
+        || !TEST_true(X509_REQ_set_version(src, X509_REQ_VERSION_1))
+        || !TEST_true(X509_REQ_set_pubkey(src, key))
+        || !TEST_int_gt(X509_REQ_sign(src, key, NULL), 0))
+        goto end;
+
+    MFAIL_start();
+    dup = X509_REQ_dup(src);
+    MFAIL_end();
+
+    ret = dup != NULL;
+end:
+    EVP_PKEY_free(key);
+    X509_REQ_free(src);
+    X509_REQ_free(dup);
+    return ret;
+}
+#endif
+
 int setup_tests(void)
 {
     ADD_TEST(test_tbl_standard);
@@ -698,5 +725,8 @@ int setup_tests(void)
     ADD_TEST(test_ossl_uni2utf8);
     ADD_TEST(test_empty_uni_conversions);
     ADD_TEST(test_asn1_string_to_utf8);
+#ifndef OPENSSL_NO_ECX
+    ADD_MFAIL_NO_CHECK_TEST(test_asn1_item_dup_mfail);
+#endif
     return 1;
 }