Add memory leak detection to d2i_test
authorDr. Stephen Henson <steve@openssl.org>
Thu, 13 Oct 2016 15:10:21 +0000 (16:10 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 13 Oct 2016 18:27:34 +0000 (19:27 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1707)
(cherry picked from commit 4a4c4bf06d6362f56507c787c61b07655563e962)

test/d2i_test.c

index 8c99087732dd697c13ac14640a6f40f2357821a1..8dbb8f14ec658eb097eabfc4f14747460767c34c 100644 (file)
@@ -142,6 +142,7 @@ int main(int argc, char **argv)
     int result = 0;
     const char *test_type_name;
     const char *expected_error_string;
+    const char *p = getenv("OPENSSL_DEBUG_MEMORY");
 
     size_t i;
     static ASN1_ITEM_EXP *items[] = {
@@ -159,6 +160,10 @@ int main(int argc, char **argv)
         {"compare", ASN1_COMPARE}
     };
 
+    if (p != NULL && strcmp(p, "on") == 0)
+        CRYPTO_set_mem_debug(1);
+    CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+
     if (argc != 4) {
         fprintf(stderr,
                 "Usage: d2i_test item_name expected_error file.der\n");
@@ -202,5 +207,10 @@ int main(int argc, char **argv)
 
     result = run_tests(argv[0]);
 
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        result = 1;
+#endif
+
     return result;
 }