found 637548 0.4.1-1
tags 637548 + patch
thanks

Hi there!

On Fri, 12 Aug 2011 16:42:39 +0200, Guido Günther wrote:
> On Fri, Aug 12, 2011 at 03:23:17PM +0200, Luca Capello wrote:
>> Package: virt-viewer
>> Version: 0.4.0-1
>> Severity: important
>> Tags: upstream
>> Usertags: pca-virtualization
>> 
>> Hi there!
>> 
>> 0.4.0-1 is supposed to solve this issue thanks to:
>> 
>>   
>> <http://anonscm.debian.org/gitweb/?p=pkg-libvirt/virt-viewer.git;a=commitdiff;h=2376c067bd80cf68c425d51982deece3e6129e1a>
>
> This looks like a brown paper bag for me. It has 
>
> if (!sshport) 
>
> while it should have 
>
> if (sshport)
>
> in virt-viewer-app.c:322. Sorry for that. I'll roll out a new version
> but will wait for your patch.

Well, I seem to remember I tested your patch at DebConf11, but maybe it
was not the case, so blame on me as well for that ;-)

The package used to test the patch attached below is available at the
following link, it includes an extra debug patch that shows each value
used to construct the SSH/nc tunnel:

  <http://people.debian.org/~gismo/tmp/virt-viewer_0.4.1-2~637548.dsc>

Thx, bye,
Gismo / Luca

--8<---------------cut here---------------start------------->8---
diff -Nru virt-viewer-0.4.1/debian/changelog virt-viewer-0.4.1/debian/changelog
--- virt-viewer-0.4.1/debian/changelog  2011-08-06 12:39:42.000000000 +0200
+++ virt-viewer-0.4.1/debian/changelog  2011-08-12 17:17:58.000000000 +0200
@@ -1,3 +1,11 @@
+virt-viewer (0.4.1-2~637548) UNRELEASED; urgency=low
+
+  * debian/patches/series,
+    debian/patches/src_virt-viewer-app.c_fix-SSH-port-handling.patch:
+    new file (Closes: #637548).
+
+ -- Luca Capello <[email protected]>  Fri, 12 Aug 2011 17:17:58 +0200
+
 virt-viewer (0.4.1-1) unstable; urgency=low
 
   * [09d4f14] Imported Upstream version 0.4.1
diff -Nru virt-viewer-0.4.1/debian/patches/DEBUG_SSH-port.patch 
virt-viewer-0.4.1/debian/patches/DEBUG_SSH-port.patch
--- virt-viewer-0.4.1/debian/patches/DEBUG_SSH-port.patch       1970-01-01 
01:00:00.000000000 +0100
+++ virt-viewer-0.4.1/debian/patches/DEBUG_SSH-port.patch       2011-08-11 
17:14:16.000000000 +0200
@@ -0,0 +1,13 @@
+--- virt-viewer.orig/src/virt-viewer-app.c
++++ virt-viewer/src/virt-viewer-app.c
+@@ -339,6 +339,10 @@
+       }
+       cmd[n++] = NULL;
+ 
++      int j;
++      for(j=0; j<n; j++)
++              printf("open_tunnel_ssh_cmd[%d]:|%s|\n", j, cmd[j]);
++
+       return virt_viewer_app_open_tunnel(cmd);
+ }
+ 
diff -Nru virt-viewer-0.4.1/debian/patches/series 
virt-viewer-0.4.1/debian/patches/series
--- virt-viewer-0.4.1/debian/patches/series     1970-01-01 01:00:00.000000000 
+0100
+++ virt-viewer-0.4.1/debian/patches/series     2011-08-12 17:16:08.000000000 
+0200
@@ -0,0 +1,2 @@
+src_virt-viewer-app.c_fix-SSH-port-handling.patch
+DEBUG_SSH-port.patch
diff -Nru 
virt-viewer-0.4.1/debian/patches/src_virt-viewer-app.c_fix-SSH-port-handling.patch
 
virt-viewer-0.4.1/debian/patches/src_virt-viewer-app.c_fix-SSH-port-handling.patch
--- 
virt-viewer-0.4.1/debian/patches/src_virt-viewer-app.c_fix-SSH-port-handling.patch
  1970-01-01 01:00:00.000000000 +0100
+++ 
virt-viewer-0.4.1/debian/patches/src_virt-viewer-app.c_fix-SSH-port-handling.patch
  2011-08-12 17:17:25.000000000 +0200
@@ -0,0 +1,102 @@
+Description: src/virt-viewer-app.c: fix SSH port handling
+
+Commit 39439b0b3e531f1eeac44fec229b8cd77bed78a6 ("Don't hardcode SSH
+port to 22") is not enough to deal with ~/.ssh/config settings, see
+Debian bug #637548.  This patch addresses the problem once and for
+all, doing different things:
+
+1) bring virt_viewer_app_open_tunnel_ssh back to sanity, consistently
+   using the global variable names.
+
+2) set the ssh -p switch only if port is defined, reflecting
+   src/virt-viewer-app.c:327.
+
+3) in src/virt-viewer-app.c:646, showing the default SSH port when no
+   port is specified in the URI is wrong, given that in this case
+   ~/.ssh/config should be parsed to find the correct port.
+
+   Please note that when no port is specified in the URI 0 is anyway
+   shown, which is a bit unfortunate, since it does not distinguish
+   when no or the real 0 value was assigned to the variable.
+
+4) in src/virt-viewer-app.c:1093, get the port value from the URI, as
+   in src/virt-viewer-util.c:87, instead of always setting it to 0.
+
+Author: Luca Capello <[email protected]>
+Bug-Debian: http://bugs.debian.org/637548>
+Last-Update: 2011-08-12
+
+--- virt-viewer.orig/src/virt-viewer-app.c
++++ virt-viewer/src/virt-viewer-app.c
+@@ -307,11 +307,11 @@
+ 
+ 
+ static int
+-virt_viewer_app_open_tunnel_ssh(const char *sshhost,
+-                              int sshport,
+-                              const char *sshuser,
+-                              const char *host,
+-                              const char *port,
++virt_viewer_app_open_tunnel_ssh(const char *host,
++                              int port,
++                              const char *user,
++                              const char *ghost,
++                              const char *gport,
+                               const char *unixsock)
+ {
+       const char *cmd[10];
+@@ -319,20 +319,20 @@
+       int n = 0;
+ 
+       cmd[n++] = "ssh";
+-      if (!sshport) {
++      if (port) {
+               cmd[n++] = "-p";
+-              sprintf(portstr, "%d", sshport);
++              sprintf(portstr, "%d", port);
+               cmd[n++] = portstr;
+       }
+-      if (sshuser) {
++      if (user) {
+               cmd[n++] = "-l";
+-              cmd[n++] = sshuser;
++              cmd[n++] = user;
+       }
+-      cmd[n++] = sshhost;
++      cmd[n++] = host;
+       cmd[n++] = "nc";
+-      if (port) {
+-              cmd[n++] = host;
+-              cmd[n++] = port;
++      if (gport) {
++              cmd[n++] = ghost;
++              cmd[n++] = gport;
+       } else {
+               cmd[n++] = "-U";
+               cmd[n++] = unixsock;
+@@ -643,7 +643,7 @@
+                                             priv->unixsock);
+               }
+               virt_viewer_app_trace(self, "Setting up SSH tunnel via 
%s@%s:%d\n",
+-                                    priv->user, priv->host, priv->port ? 
priv->port : 22);
++                                    priv->user, priv->host, priv->port);
+ 
+               if ((fd = virt_viewer_app_open_tunnel_ssh(priv->host, 
priv->port,
+                                                         priv->user, 
priv->ghost,
+@@ -1304,6 +1304,7 @@
+       g_free(priv->transport);
+       g_free(priv->unixsock);
+       g_free(priv->user);
++      g_free(priv->port);
+ 
+       priv->host = g_strdup(host);
+       priv->ghost = g_strdup(ghost);
+@@ -1311,7 +1312,7 @@
+       priv->transport = g_strdup(transport);
+       priv->unixsock = g_strdup(unixsock);
+       priv->user = g_strdup(user);
+-      priv->port = 0;
++      priv->port = port;
+ 
+       virt_viewer_app_update_pretty_address(self);
+ }
--8<---------------cut here---------------end--------------->8---

Attachment: pgpAqvaDDxw3O.pgp
Description: PGP signature

Reply via email to