aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2006-04-13 13:24:45 +0000
committerMartin Willi <martin@strongswan.org>2006-04-13 13:24:45 +0000
commit9d7597bb120e5e889f19038271f65455cda090f5 (patch)
tree19f73de2f1b3f3ddfede075f9d43bb44ef022fd5 /Source/charon
parent2cb7d3cab2b23f50bb406c99b8193a62ce4b8c00 (diff)
downloadstrongswan-9d7597bb120e5e889f19038271f65455cda090f5.tar.bz2
strongswan-9d7597bb120e5e889f19038271f65455cda090f5.tar.xz
- leak detective is usable, but does not show static function names
- a script which gets address via ldd and resolves address via addr2line would be nice - fixed a leak in child_sa with new detective ;-)
Diffstat (limited to 'Source/charon')
-rw-r--r--Source/charon/config/child_proposal.obin35520 -> 0 bytes
-rw-r--r--Source/charon/daemon.c7
-rw-r--r--Source/charon/sa/child_sa.c2
3 files changed, 5 insertions, 4 deletions
diff --git a/Source/charon/config/child_proposal.o b/Source/charon/config/child_proposal.o
deleted file mode 100644
index 839923297..000000000
--- a/Source/charon/config/child_proposal.o
+++ /dev/null
Binary files differ
diff --git a/Source/charon/daemon.c b/Source/charon/daemon.c
index 6361f308d..aafc86ab1 100644
--- a/Source/charon/daemon.c
+++ b/Source/charon/daemon.c
@@ -263,12 +263,11 @@ void signal_handler(int signal)
for (i = 0; i < size; i++)
{
- logger->log(logger, ERROR, "\t%s", strings[i]);
+ logger->log(logger, ERROR, " %s", strings[i]);
}
-
free (strings);
-
- charon->kill(charon, "SIGSEGV received");
+ /* kill ourselve the hard way, anything other may result in more SIGSEGVs*/
+ kill(getpid(), SIGKILL);
}
/**
diff --git a/Source/charon/sa/child_sa.c b/Source/charon/sa/child_sa.c
index fd82f123b..28e9cdd46 100644
--- a/Source/charon/sa/child_sa.c
+++ b/Source/charon/sa/child_sa.c
@@ -447,6 +447,8 @@ static status_t add_policies(private_child_sa_t *this, linked_list_t *my_ts_list
{
my_iter->destroy(my_iter);
other_iter->destroy(other_iter);
+ policy->my_net->destroy(policy->my_net);
+ policy->other_net->destroy(policy->other_net);
free(policy);
return status;
}