If memory debugging enabled return error on leaks.
authorDr. Stephen Henson <steve@openssl.org>
Thu, 14 Jan 2016 22:00:03 +0000 (22:00 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Fri, 5 Feb 2016 16:02:21 +0000 (16:02 +0000)
Reviewed-by: Rich Salz <rsalz@openssl.org>
17 files changed:
apps/openssl.c
test/clienthellotest.c
test/danetest.c
test/dsatest.c
test/ecdhtest.c
test/ecdsatest.c
test/ectest.c
test/enginetest.c
test/evp_extra_test.c
test/evp_test.c
test/exptest.c
test/jpaketest.c
test/p5_crpt2_test.c
test/rsa_test.c
test/srptest.c
test/ssltest.c
test/verify_extra_test.c

index 37f71a94d6a2e7207e69ce4be836804871867fac..b8da88a224f9a21b7096b9363232a9f59704b2e1 100644 (file)
@@ -429,7 +429,8 @@ int main(int argc, char *argv[])
     BIO_free_all(bio_out);
     apps_shutdown();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks(bio_err);
+    if (CRYPTO_mem_leaks(bio_err) <= 0)
+        ret = 1;
 #endif
     BIO_free(bio_err);
     EXIT(ret);
index 66fc27f48b144bfb81425b537a6f41c652cd12b8..d9ae758987be2521737051207d3fed7e90f92d3f 100644 (file)
@@ -217,7 +217,8 @@ int main(int argc, char *argv[])
     EVP_cleanup();
     CRYPTO_cleanup_all_ex_data();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks(err);
+    if (CRYPTO_mem_leaks(err) <= 0)
+        testresult = 0;
 #endif
     BIO_free(err);
 
index 636f629617d872a02401ed1ec33e2dbe7fd8d2a1..5c4a785c00bff6f9313702abbb90ac47b21674cd 100644 (file)
@@ -526,7 +526,8 @@ end:
     ERR_remove_thread_state(NULL);
     EVP_cleanup();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks(bio_err);
+    if (CRYPTO_mem_leaks(bio_err) <= 0)
+        ret = 1;
 #endif
     BIO_free(bio_err);
     EXIT(ret);
index 426e443bbcc5c3c3dbe461389fbb248adfd552ba..f36b4494d077eb5bbd2f64deb0f70606de05bcf3 100644 (file)
@@ -215,7 +215,8 @@ int main(int argc, char **argv)
     ERR_remove_thread_state(NULL);
     ERR_free_strings();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks(bio_err);
+    if (CRYPTO_mem_leaks(bio_err) <= 0)
+        ret = 0;
 #endif
     BIO_free(bio_err);
     bio_err = NULL;
index 636be3ee9d371e4637477b5967a42a0ca5d637f3..16d8cedac1d6f0701be7a95a45eb89e00e4333fa 100644 (file)
@@ -516,7 +516,8 @@ int main(int argc, char *argv[])
     CRYPTO_cleanup_all_ex_data();
     ERR_remove_thread_state(NULL);
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks_fp(stderr);
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        ret = 1;
 #endif
     EXIT(ret);
 }
index d098355be693ff2044b4e8b682ebb55d0ee497e6..feb9f0a6eb1554f23c29deea6463eb9df87be750 100644 (file)
@@ -545,7 +545,8 @@ int main(void)
     ERR_remove_thread_state(NULL);
     ERR_free_strings();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks(out);
+    if (CRYPTO_mem_leaks(out) <= 0)
+        ret = 1;
 #endif
     BIO_free(out);
     return ret;
index 674e593f4430cf6b8ac2be03ba4080839143bc27..03dfed96c90f302e9c4afe7bc315def6a6f89b74 100644 (file)
@@ -1687,7 +1687,8 @@ int main(int argc, char *argv[])
     ERR_free_strings();
     ERR_remove_thread_state(NULL);
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks_fp(stderr);
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        return 1;
 #endif
 
     return 0;
index 886bf68dae1ee755a37968e840fdfaa9042ae6ec..d8dcca9cc3876c988452822136ef25730116db37 100644 (file)
@@ -249,7 +249,8 @@ int main(int argc, char *argv[])
     ERR_free_strings();
     ERR_remove_thread_state(NULL);
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks_fp(stderr);
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        to_return = 1;
 #endif
     return to_return;
 }
index 13dd26270572a4369384aaa989c1a59af1f9b512..53844ad17d174c6df662b08ef3f0292bebb69144 100644 (file)
@@ -467,7 +467,8 @@ int main(void)
     ERR_remove_thread_state(NULL);
     ERR_free_strings();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks_fp(stderr);
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        return 1;
 #endif
 
     printf("PASS\n");
index 6c9f4b8ece52b431d884a987c5ae26d1f019a47f..ff2ee10c287e1c98222c50f30760a44ec49e1cf4 100644 (file)
@@ -617,7 +617,8 @@ int main(int argc, char **argv)
     ERR_remove_thread_state(NULL);
     ERR_free_strings();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks_fp(stderr);
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        return 1;
 #endif
     if (t.errors)
         return 1;
index 0acdacced73caab727f8a8580360f21aacf0f6a2..5cd79e2970b9518daa60fb92b2e960213088d811 100644 (file)
@@ -300,7 +300,8 @@ int main(int argc, char *argv[])
     BN_CTX_free(ctx);
     ERR_remove_thread_state(NULL);
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks(out);
+    if (CRYPTO_mem_leaks(out) <= 0)
+        goto err;
 #endif
     BIO_free(out);
     printf("\n");
index 7569f2e167321012002675e365eec285ed5ef1a5..7b59855d23f9d2e8a3f9bad5c0cac893d2d2508a 100644 (file)
@@ -179,7 +179,8 @@ int main(int argc, char **argv)
     ERR_remove_thread_state(NULL);
     ERR_free_strings();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks(bio_err);
+    if (CRYPTO_mem_leaks(bio_err) <= 0)
+        return 1;
 #endif
 
     return 0;
index 303906fa9cd9dba9f1c662bfee2482ee875d0081..2c998bada332365d3ef1eddc53b96ad20c17b544 100644 (file)
@@ -206,7 +206,8 @@ int main(int argc, char **argv)
     ERR_remove_thread_state(NULL);
     ERR_free_strings();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks_fp(stderr);
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        return 1;
 # endif
     return 0;
 }
index 0b707bf715ec7981ce5b43a3680d4896ea29e19a..9f1f3d69d9c87f7e8a4b76f539ba05690105d6f3 100644 (file)
@@ -328,7 +328,8 @@ int main(int argc, char *argv[])
     ERR_remove_thread_state(NULL);
 
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks_fp(stderr);
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        err = 1;
 #endif
 
 # ifdef OPENSSL_SYS_NETWARE
index f6555a60e128861ea5ed2509bd5e3c1537557398..442a6101d42a79198dd05001f9c3590bc6f0fd2e 100644 (file)
@@ -147,7 +147,8 @@ int main(int argc, char **argv)
     ERR_remove_thread_state(NULL);
     ERR_free_strings();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks(bio_err);
+    if (CRYPTO_mem_leaks(bio_err) <= 0)
+        return 1;
 #endif
     BIO_free(bio_err);
 
index 9cd2a53e5055c2f7be43be6c212cb0b86114c585..f217a2073ea7d9fd9c3b6ebfc29c2f28e77d2af4 100644 (file)
@@ -1865,7 +1865,8 @@ int main(int argc, char *argv[])
     ERR_remove_thread_state(NULL);
     EVP_cleanup();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks(bio_err);
+    if (CRYPTO_mem_leaks(bio_err) <= 0)
+        ret = 1;
 #endif
     BIO_free(bio_err);
     EXIT(ret);
index 843252051ddfa6fd5e5e51b21770665043d0f619..31c391ec1f9a55c1a9c8bd6ab3b817d1a304ca7f 100644 (file)
@@ -208,7 +208,8 @@ int main(int argc, char **argv)
     ERR_remove_thread_state(NULL);
     ERR_free_strings();
 #ifndef OPENSSL_NO_CRYPTO_MDEBUG
-    CRYPTO_mem_leaks_fp(stderr);
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        return 1;
 #endif
 
     printf("PASS\n");