X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=test%2Fmemleaktest.c;h=f8945904ac24b51a39b0cb7ef1238321226d4e45;hp=cccbcf6625b55ba306f4a3380a0ed65bc7b25a79;hb=ec04e866343d40a1e3e8e5db79557e279a2dd0d8;hpb=bbd86bf5424a611cb6b77a3a17fc522931c4dcb8;ds=sidebyside diff --git a/test/memleaktest.c b/test/memleaktest.c index cccbcf6625..f8945904ac 100644 --- a/test/memleaktest.c +++ b/test/memleaktest.c @@ -59,9 +59,10 @@ int main(int argc, char **argv) { -#ifdef CRYPTO_MDEBUG +#ifndef OPENSSL_NO_CRYPTO_MDEBUG char *p; char *lost; + int noleak; p = getenv("OPENSSL_DEBUG_MEMORY"); if (p != NULL && strcmp(p, "on") == 0) @@ -74,15 +75,17 @@ int main(int argc, char **argv) return 1; } - if (argv[1] && strcmp(argv[1], "freeit") == 0) + if (argv[1] && strcmp(argv[1], "freeit") == 0) { OPENSSL_free(lost); + lost = NULL; + } - CRYPTO_mem_leaks_fp(stderr); - return 0; + noleak = CRYPTO_mem_leaks_fp(stderr); + /* If -1 return value something bad happened */ + if (noleak == -1) + return 1; + return ((lost != NULL) ^ (noleak == 0)); #else - if (argv[1] && strcmp(argv[1], "freeit") == 0) - return 0; - fprintf(stderr, "Leak simulated\n"); - return 1; + return 0; #endif }