summaryrefslogtreecommitdiff
path: root/src/libstrongswan/utils/leak_detective.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstrongswan/utils/leak_detective.c')
-rw-r--r--src/libstrongswan/utils/leak_detective.c26
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++;
}