summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2014-02-12 22:15:02 +0800
committerMatt Johnston <matt@ucc.asn.au>2014-02-12 22:15:02 +0800
commitcc288d3e8b4aa01179125e45248eaa3d2ae83195 (patch)
tree344d0be1e5d893d0de4c5ea7c20e277e493c3199
parent41a3754ea67352e249b39e7903fba260f108468c (diff)
downloaddropbear-cc288d3e8b4aa01179125e45248eaa3d2ae83195.tar.gz
cleanup before clearing keys
-rw-r--r--common-session.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/common-session.c b/common-session.c
index 40c66e8..6882dce 100644
--- a/common-session.c
+++ b/common-session.c
@@ -244,7 +244,11 @@ void session_cleanup() {
if (ses.extra_session_cleanup) {
ses.extra_session_cleanup();
}
+
+ chancleanup();
+ /* Cleaning up keys must happen after other cleanup
+ functions which might queue packets */
if (ses.session_id) {
buf_burn(ses.session_id);
buf_free(ses.session_id);
@@ -258,8 +262,6 @@ void session_cleanup() {
m_burn(ses.keys, sizeof(struct key_context));
m_free(ses.keys);
- chancleanup();
-
TRACE(("leave session_cleanup"))
}