From d323f7ecf52e3d4ec1f4939bf31693e02f891dca Mon Sep 17 00:00:00 2001 From: "mbuhl@openbsd.org" Date: Fri, 18 Nov 2022 19:47:40 +0000 Subject: [PATCH] upstream: In channel_request_remote_forwarding the parameters for permission_set_add are leaked as they are also duplicated in the call. Found by CodeChecker. ok djm OpenBSD-Commit-ID: 4aef50fa9be7c0b138188814c8fe3dccc196f61e --- channels.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/channels.c b/channels.c index e75a0cf9b..7c2c882df 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.420 2022/09/19 08:49:50 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.421 2022/11/18 19:47:40 mbuhl Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -4081,7 +4081,7 @@ int channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd) { int r, success = 0, idx = -1; - char *host_to_connect, *listen_host, *listen_path; + const char *host_to_connect, *listen_host, *listen_path; int port_to_connect, listen_port; /* Send the forward request to the remote side. */ @@ -4112,18 +4112,17 @@ channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd) host_to_connect = listen_host = listen_path = NULL; port_to_connect = listen_port = 0; if (fwd->connect_path != NULL) { - host_to_connect = xstrdup(fwd->connect_path); + host_to_connect = fwd->connect_path; port_to_connect = PORT_STREAMLOCAL; } else { - host_to_connect = xstrdup(fwd->connect_host); + host_to_connect = fwd->connect_host; port_to_connect = fwd->connect_port; } if (fwd->listen_path != NULL) { - listen_path = xstrdup(fwd->listen_path); + listen_path = fwd->listen_path; listen_port = PORT_STREAMLOCAL; } else { - if (fwd->listen_host != NULL) - listen_host = xstrdup(fwd->listen_host); + listen_host = fwd->listen_host; listen_port = fwd->listen_port; } idx = permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL,