]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: put back the mux_ctx memleak fix, but only for channels of
authordjm@openbsd.org <djm@openbsd.org>
Fri, 3 Jul 2020 07:25:18 +0000 (07:25 +0000)
committerDamien Miller <djm@mindrot.org>
Fri, 3 Jul 2020 07:26:23 +0000 (17:26 +1000)
type SSH_CHANNEL_MUX_LISTENER; Specifically SSH_CHANNEL_MUX_PROXY channels
should not have this structure freed.

OpenBSD-Commit-ID: f3b213ae60405f77439e2b06262f054760c9d325

channels.c

index f23066dff61f9abb82d87243d10ac12318c17071..71c94f6cc7147def9eb572b3f5377175c6286bf4 100644 (file)
@@ -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
@@ -603,6 +603,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);