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
This commit is contained in:
mbuhl@openbsd.org 2022-11-18 19:47:40 +00:00 committed by Darren Tucker
parent 62cc33e6ee
commit d323f7ecf5
No known key found for this signature in database
1 changed files with 6 additions and 7 deletions

View File

@ -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> * Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * 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) channel_request_remote_forwarding(struct ssh *ssh, struct Forward *fwd)
{ {
int r, success = 0, idx = -1; 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; int port_to_connect, listen_port;
/* Send the forward request to the remote side. */ /* 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; host_to_connect = listen_host = listen_path = NULL;
port_to_connect = listen_port = 0; port_to_connect = listen_port = 0;
if (fwd->connect_path != NULL) { if (fwd->connect_path != NULL) {
host_to_connect = xstrdup(fwd->connect_path); host_to_connect = fwd->connect_path;
port_to_connect = PORT_STREAMLOCAL; port_to_connect = PORT_STREAMLOCAL;
} else { } else {
host_to_connect = xstrdup(fwd->connect_host); host_to_connect = fwd->connect_host;
port_to_connect = fwd->connect_port; port_to_connect = fwd->connect_port;
} }
if (fwd->listen_path != NULL) { if (fwd->listen_path != NULL) {
listen_path = xstrdup(fwd->listen_path); listen_path = fwd->listen_path;
listen_port = PORT_STREAMLOCAL; listen_port = PORT_STREAMLOCAL;
} else { } else {
if (fwd->listen_host != NULL) listen_host = fwd->listen_host;
listen_host = xstrdup(fwd->listen_host);
listen_port = fwd->listen_port; listen_port = fwd->listen_port;
} }
idx = permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL, idx = permission_set_add(ssh, FORWARD_USER, FORWARD_LOCAL,