From 95f9fa82d5574f08dca873941115ce60c8f14341 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 13 Sep 2016 17:28:21 +0200 Subject: [PATCH] leak-detective: Whitelist thread ID getter In case an external thread calls into our code and logs messages, a thread object is allocated that will never be released. Even if we try to clean up the object via thread value destructor there is no guarantee that the thread actually terminates before we check for leaks, which seems to be the case for the Ada Tasking threads. --- src/libstrongswan/utils/leak_detective.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libstrongswan/utils/leak_detective.c b/src/libstrongswan/utils/leak_detective.c index e78938cfc..ad67c0380 100644 --- a/src/libstrongswan/utils/leak_detective.c +++ b/src/libstrongswan/utils/leak_detective.c @@ -494,7 +494,7 @@ static bool register_hooks() * List of functions using static allocation buffers or should be suppressed * otherwise on leak report. */ -char *whitelist[] = { +static char *whitelist[] = { /* backtraces, including own */ "backtrace_create", "strerror_safe", @@ -604,6 +604,8 @@ char *whitelist[] = { "system__tasking__initialize", "system__tasking__initialization__abort_defer", "system__tasking__stages__create_task", + /* in case external threads call into our code */ + "thread_current_id", }; /**