summaryrefslogtreecommitdiffstats
path: root/usr.bin/ssh
diff options
context:
space:
mode:
authordjm <djm@openbsd.org>2020-07-03 07:25:18 +0000
committerdjm <djm@openbsd.org>2020-07-03 07:25:18 +0000
commite62bf3fe2c474b39a30a1de2fe68d5e4f1b85202 (patch)
tree12776b14454e78341b3269ea5fb719bff08a7753 /usr.bin/ssh
parentrevert r1.399 - the lifetime of c->mux_ctx is more complex; simply freeing (diff)
downloadwireguard-openbsd-e62bf3fe2c474b39a30a1de2fe68d5e4f1b85202.tar.xz
wireguard-openbsd-e62bf3fe2c474b39a30a1de2fe68d5e4f1b85202.zip
put back the mux_ctx memleak fix, but only for channels of type
SSH_CHANNEL_MUX_LISTENER; Specifically SSH_CHANNEL_MUX_PROXY channels should not have this structure freed.
Diffstat (limited to 'usr.bin/ssh')
-rw-r--r--usr.bin/ssh/channels.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.bin/ssh/channels.c b/usr.bin/ssh/channels.c
index 0efb095d17f..fbb2fce445c 100644
--- a/usr.bin/ssh/channels.c
+++ b/usr.bin/ssh/channels.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: channels.c,v 1.400 2020/07/03 07:17:35 djm Exp $ */
+/* $OpenBSD: channels.c,v 1.401 2020/07/03 07:25:18 djm Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -593,6 +593,10 @@ channel_free(struct ssh *ssh, Channel *c)
if (c->type == SSH_CHANNEL_MUX_CLIENT)
mux_remove_remote_forwardings(ssh, c);
+ else if (c->type == SSH_CHANNEL_MUX_LISTENER) {
+ free(c->mux_ctx);
+ c->mux_ctx = NULL;
+ }
if (log_level_get() >= SYSLOG_LEVEL_DEBUG3) {
s = channel_open_message(ssh);