]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: In channel_request_remote_forwarding the parameters for
authormbuhl@openbsd.org <mbuhl@openbsd.org>
Fri, 18 Nov 2022 19:47:40 +0000 (19:47 +0000)
committerDarren Tucker <dtucker@dtucker.net>
Wed, 30 Nov 2022 01:13:55 +0000 (12:13 +1100)
permission_set_add are leaked as they are also duplicated in the call. Found
by CodeChecker. ok djm

OpenBSD-Commit-ID: 4aef50fa9be7c0b138188814c8fe3dccc196f61e

channels.c

index e75a0cf9b50995826fb4b77bd9498e248ade9e87..7c2c882dfd87aaefc70bd253b52b49c15e364c72 100644 (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>
  * 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,