In channel_request_remote_forwarding the parameters for permission_set_add
authormbuhl <mbuhl@openbsd.org>
Fri, 18 Nov 2022 19:47:40 +0000 (19:47 +0000)
committermbuhl <mbuhl@openbsd.org>
Fri, 18 Nov 2022 19:47:40 +0000 (19:47 +0000)
are leaked as they are also duplicated in the call.
Found by CodeChecker.
ok djm

usr.bin/ssh/channels.c

index 0c42fb5..8b91995 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
@@ -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,