]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Don't hardcode ssh port 22, use VIR_FREE, initialize pointers to NULL not 0.
authorGuido Günther <agx@sigxcpu.org>
Sat, 31 Jan 2009 13:49:11 +0000 (13:49 +0000)
committerGuido Günther <agx@sigxcpu.org>
Sat, 31 Jan 2009 13:49:11 +0000 (13:49 +0000)
ChangeLog
src/remote_internal.c

index 9eb97d592de28588332a13c34e7675ef09890dbe..76a889dd979248ec6d0073ceab938ca68a93611f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Jan 31 14:45:58 CET 2009 Guido Günther<agx@sigxcpu.org>
+
+       * src/remote_internal.c (doRemoteOpen): Don't hardcode ssh port 22,
+       use VIR_FREE, initialize pointers to NULL not 0.
+
 Sat Jan 31 11:43:21 CET 2009 Daniel Veillard <veillard@redhat.com>
 
        * configure.in docs/* NEWS: release of 0.6.0
index f8740af6864141afe97f0afcebe9bcd5196353d6..b6e963af8500972871ceb9de9ae8d937d45881ca 100644 (file)
@@ -370,8 +370,8 @@ doRemoteOpen (virConnectPtr conn,
     /* Local variables which we will initialise. These can
      * get freed in the failed: path.
      */
-    char *name = 0, *command = 0, *sockname = 0, *netcat = 0, *username = 0;
-    char *port = 0, *authtype = 0;
+    char *name = NULL, *command = NULL, *sockname = NULL, *netcat = NULL;
+    char *port = NULL, *authtype = NULL, *username = NULL;
     int no_verify = 0, no_tty = 0;
     char **cmd_argv = NULL;
 
@@ -387,11 +387,8 @@ doRemoteOpen (virConnectPtr conn,
     } else if (transport == trans_tcp) {
         port = strdup (LIBVIRTD_TCP_PORT);
         if (!port) goto out_of_memory;
-    } else if (transport == trans_ssh) {
-        port = strdup ("22");
-        if (!port) goto out_of_memory;
     } else
-        port = NULL;           /* Port not used for unix, ext. */
+        port = NULL; /* Port not used for unix, ext., default for ssh */
 
 
     priv->hostname = strdup (conn->uri && conn->uri->server ?
@@ -673,24 +670,27 @@ doRemoteOpen (virConnectPtr conn,
     }
 
     case trans_ssh: {
-        int j, nr_args = 8;
+        int j, nr_args = 6;
 
         if (username) nr_args += 2; /* For -l username */
         if (no_tty) nr_args += 5;   /* For -T -o BatchMode=yes -e none */
+        if (port) nr_args += 2;     /* For -p port */
 
         command = command ? command : strdup ("ssh");
         if (command == NULL)
             goto out_of_memory;
 
         // Generate the final command argv[] array.
-        //   ssh -p $port [-l $username] $hostname $netcat -U $sockname [NULL]
+        //   ssh [-p $port] [-l $username] $hostname $netcat -U $sockname [NULL]
         if (VIR_ALLOC_N(cmd_argv, nr_args) < 0)
             goto out_of_memory;
 
         j = 0;
         cmd_argv[j++] = strdup (command);
-        cmd_argv[j++] = strdup ("-p");
-        cmd_argv[j++] = strdup (port);
+        if (port) {
+            cmd_argv[j++] = strdup ("-p");
+            cmd_argv[j++] = strdup (port);
+        }
         if (username) {
             cmd_argv[j++] = strdup ("-l");
             cmd_argv[j++] = strdup (username);
@@ -843,20 +843,20 @@ doRemoteOpen (virConnectPtr conn,
 
  cleanup:
     /* Free up the URL and strings. */
-    free (name);
-    free (command);
-    free (sockname);
-    free (authtype);
-    free (netcat);
-    free (username);
-    free (port);
+    VIR_FREE(name);
+    VIR_FREE(command);
+    VIR_FREE(sockname);
+    VIR_FREE(authtype);
+    VIR_FREE(netcat);
+    VIR_FREE(username);
+    VIR_FREE(port);
     if (cmd_argv) {
         char **cmd_argv_ptr = cmd_argv;
         while (*cmd_argv_ptr) {
-            free (*cmd_argv_ptr);
+            VIR_FREE(*cmd_argv_ptr);
             cmd_argv_ptr++;
         }
-        free (cmd_argv);
+        VIR_FREE(cmd_argv);
     }
 
     return retcode;
@@ -884,11 +884,7 @@ doRemoteOpen (virConnectPtr conn,
 #endif
     }
 
-    if (priv->hostname) {
-        free (priv->hostname);
-        priv->hostname = NULL;
-    }
-
+    VIR_FREE(priv->hostname);
     goto cleanup;
 }