From 472ba50a01014214bffa0bd7afe5c1fd4b1b4061 Mon Sep 17 00:00:00 2001 From: mbuhl Date: Fri, 18 Nov 2022 19:47:40 +0000 Subject: [PATCH] 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 --- usr.bin/ssh/channels.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/usr.bin/ssh/channels.c b/usr.bin/ssh/channels.c index 0c42fb547ff..8b9199599c4 100644 --- a/usr.bin/ssh/channels.c +++ b/usr.bin/ssh/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 @@ -4032,7 +4032,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. */ @@ -4063,18 +4063,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, -- 2.20.1