diff options
Diffstat (limited to 'src/libstrongswan/utils/leak_detective.c')
-rw-r--r-- | src/libstrongswan/utils/leak_detective.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/libstrongswan/utils/leak_detective.c b/src/libstrongswan/utils/leak_detective.c index 52e92951b..ef2ea8e14 100644 --- a/src/libstrongswan/utils/leak_detective.c +++ b/src/libstrongswan/utils/leak_detective.c @@ -218,6 +218,27 @@ char *whitelist[] = { "gcry_create_nonce", /* NSPR */ "PR_CallOnce", +<<<<<<< HEAD +}; + +/** + * check if a stack frame contains functions listed above + */ +static bool is_whitelisted(backtrace_t *backtrace) +{ + int i; + for (i = 0; i < sizeof(whitelist)/sizeof(char*); i++) + { + if (backtrace->contains_function(backtrace, whitelist[i])) + { + return TRUE; + } + } + return FALSE; +} + +/** +======= /* libapr */ "apr_pool_create_ex", /* glib */ @@ -235,6 +256,7 @@ char *whitelist[] = { }; /** +>>>>>>> upstream/4.5.1 * Report leaks at library destruction */ static void report(private_leak_detective_t *this, bool detailed) @@ -246,8 +268,12 @@ static void report(private_leak_detective_t *this, bool detailed) for (hdr = first_header.next; hdr != NULL; hdr = hdr->next) { +<<<<<<< HEAD + if (is_whitelisted(hdr->backtrace)) +======= if (hdr->backtrace->contains_function(hdr->backtrace, whitelist, countof(whitelist))) +>>>>>>> upstream/4.5.1 { whitelisted++; } |