summaryrefslogtreecommitdiff
path: root/channels.c
diff options
context:
space:
mode:
authormbuhl@openbsd.org <mbuhl@openbsd.org>2022-11-18 19:47:40 +0000
committerDarren Tucker <dtucker@dtucker.net>2022-11-30 12:13:55 +1100
commitd323f7ecf52e3d4ec1f4939bf31693e02f891dca (patch)
tree791ac0a81847d005866c91ea28ca95cb414d5e35 /channels.c
parent62cc33e6eed847aafdc29e34aa69e9bd82a0ee16 (diff)
downloadopenssh-git-d323f7ecf52e3d4ec1f4939bf31693e02f891dca.tar.gz
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
Diffstat (limited to 'channels.c')
-rw-r--r--channels.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/channels.c b/channels.c
index e75a0cf9..7c2c882d 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 <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, 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,