aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2008-03-27 11:42:35 +0000
committerMartin Willi <martin@strongswan.org>2008-03-27 11:42:35 +0000
commitcf4caefab12b9e7b4ac3a74f893a2ccf80b9c5fc (patch)
treeda83176880075903baf2a4ea3e8ea9ef83774a5a /src
parent4204db116bc9abc33376722e3b2362f84f22913b (diff)
downloadstrongswan-cf4caefab12b9e7b4ac3a74f893a2ccf80b9c5fc.tar.bz2
strongswan-cf4caefab12b9e7b4ac3a74f893a2ccf80b9c5fc.tar.xz
whitelisted FCGX_Init
reporting count of leaks suppressed by whitelist
Diffstat (limited to 'src')
-rw-r--r--src/libstrongswan/utils/leak_detective.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/libstrongswan/utils/leak_detective.c b/src/libstrongswan/utils/leak_detective.c
index 149456875..a86fe0229 100644
--- a/src/libstrongswan/utils/leak_detective.c
+++ b/src/libstrongswan/utils/leak_detective.c
@@ -230,6 +230,7 @@ char *whitelist[] = {
"mysql_init_character_set",
"init_client_errs",
"my_thread_init",
+ "FCGX_Init",
};
/**
@@ -265,11 +266,15 @@ static bool is_whitelisted(void **stack_frames, int stack_frame_count)
void report_leaks()
{
memory_header_t *hdr;
- int leaks = 0;
+ int leaks = 0, whitelisted = 0;
for (hdr = first_header.next; hdr != NULL; hdr = hdr->next)
{
- if (!is_whitelisted(hdr->stack_frames, hdr->stack_frame_count))
+ if (is_whitelisted(hdr->stack_frames, hdr->stack_frame_count))
+ {
+ whitelisted++;
+ }
+ else
{
fprintf(stderr, "Leak (%d bytes at %p):\n", hdr->bytes, hdr + 1);
/* skip the first frame, contains leak detective logic */
@@ -281,15 +286,16 @@ void report_leaks()
switch (leaks)
{
case 0:
- fprintf(stderr, "No leaks detected\n");
+ fprintf(stderr, "No leaks detected");
break;
case 1:
- fprintf(stderr, "One leak detected\n");
+ fprintf(stderr, "One leak detected");
break;
default:
- fprintf(stderr, "%d leaks detected\n", leaks);
+ fprintf(stderr, "%d leaks detected", leaks);
break;
}
+ fprintf(stderr, ", %d suppressed by whitelist\n", whitelisted);
}
/**