[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#697726: unblock: vinagre/3.4.2-2



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package vinagre. Version 3.4.2-2 fixes important bug #696701.
The debdiff is attached.

unblock vinagre/3.4.2-2

Cheers,

-- 
 .''`.    Sébastien Villemot
: :' :    Debian Developer
`. `'     http://www.dynare.org/sebastien
  `-      GPG Key: 4096R/381A7594
diff -Nru vinagre-3.4.2/debian/changelog vinagre-3.4.2/debian/changelog
--- vinagre-3.4.2/debian/changelog	2012-05-15 19:01:06.000000000 +0200
+++ vinagre-3.4.2/debian/changelog	2013-01-08 21:25:05.000000000 +0100
@@ -1,3 +1,11 @@
+vinagre (3.4.2-2) unstable; urgency=low
+
+  * Team upload.
+  * debian/patches/fix-vnc-through-ssh.patch: new patch, fixes VNC
+    tunneling through SSH. Closes: #696701
+
+ -- Sébastien Villemot <sebastien@debian.org>  Tue, 08 Jan 2013 21:24:48 +0100
+
 vinagre (3.4.2-1) unstable; urgency=low
 
   * New upstream translation release.
diff -Nru vinagre-3.4.2/debian/patches/fix-vnc-through-ssh.patch vinagre-3.4.2/debian/patches/fix-vnc-through-ssh.patch
--- vinagre-3.4.2/debian/patches/fix-vnc-through-ssh.patch	1970-01-01 01:00:00.000000000 +0100
+++ vinagre-3.4.2/debian/patches/fix-vnc-through-ssh.patch	2013-01-08 20:52:08.000000000 +0100
@@ -0,0 +1,137 @@
+Description: Fix VNC tunneling through SSH
+ Use GPollableInputStream when checking for SSH errors. Otherwise the read on
+ stderr blocks, causing the SSH connection to timeout.
+ .
+ The original code sets O_NONBLOCK on stderr, but this does not work: the flag
+ is not propagated to the corresponding GDataInputStream (at least with glib >=
+ 2.32; it may have worked with older versions).
+ .
+ As a side effect, the patch fixes a minor memory leak in
+ vinagre-ssh.c:look_for_stderr_errors() where the "line" variable was not
+ correctly freed in all cases.
+Author: S�stien Villemot <sebastien@debian.org>
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=690449
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=696701
+Applied-Upstream: 3.6.3, http://git.gnome.org/browse/vinagre/commit/?h=gnome-3-6&id=5f0688183974e3d5d055b8d136c1ac7ee6e3041c
+Last-Update: 2013-01-08
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/vinagre/vinagre-ssh.c
++++ b/vinagre/vinagre-ssh.c
+@@ -667,17 +667,30 @@
+ }
+ 
+ static gboolean
+-look_for_stderr_errors (GDataInputStream *error_stream, GError **error)
++look_for_stderr_errors (GInputStream *is, GError **error)
+ {
+-  char *line;
++  GDataInputStream *error_stream;
++  char *line = NULL;
++  gboolean ret;
++
++  error_stream = g_data_input_stream_new (is);
+ 
+   while (1)
+     {
++#ifndef G_OS_WIN32
++      if (!g_pollable_input_stream_is_readable (G_POLLABLE_INPUT_STREAM (is)))
++        {
++          ret = TRUE;
++          break;
++        }
++#endif
++
+       line = g_data_input_stream_read_line (error_stream, NULL, NULL, NULL);
+ 
+       if (line == NULL)
+         {
+-          return TRUE;
++          ret = TRUE;
++          break;
+         }
+     
+       if (strstr (line, "Permission denied") != NULL)
+@@ -685,41 +698,49 @@
+           g_set_error_literal (error,
+ 	                       VINAGRE_SSH_ERROR, VINAGRE_SSH_ERROR_PERMISSION_DENIED,
+         	               _("Permission denied"));
+-          return FALSE;
++          ret = FALSE;
++          break;
+         }
+       else if (strstr (line, "Name or service not known") != NULL)
+         {
+           g_set_error_literal (error,
+ 	                       VINAGRE_SSH_ERROR, VINAGRE_SSH_ERROR_HOST_NOT_FOUND,
+         	               _("Hostname not known"));
+-          return FALSE;
++          ret = FALSE;
++          break;
+         }
+       else if (strstr (line, "No route to host") != NULL)
+         {
+           g_set_error_literal (error,
+ 	                       VINAGRE_SSH_ERROR, VINAGRE_SSH_ERROR_HOST_NOT_FOUND,
+         	               _("No route to host"));
+-          return FALSE;
++          ret = FALSE;
++          break;
+         }
+       else if (strstr (line, "Connection refused") != NULL)
+         {
+           g_set_error_literal (error,
+ 	                       VINAGRE_SSH_ERROR, VINAGRE_SSH_ERROR_PERMISSION_DENIED,
+         	               _("Connection refused by server"));
+-          return FALSE;
++          ret = FALSE;
++          break;
+         }
+       else if (strstr (line, "Host key verification failed") != NULL) 
+         {
+           g_set_error_literal (error,
+ 	                       VINAGRE_SSH_ERROR, VINAGRE_SSH_ERROR_FAILED,
+         	               _("Host key verification failed"));
+-          return FALSE;
++          ret = FALSE;
++          break;
+         }
+       
+-      g_free (line);
+     }
+ 
+-  return TRUE;
++  if (line)
++    g_free (line);
++
++  g_object_unref (error_stream);
++  return ret;
+ }
+ 
+ gboolean
+@@ -737,7 +758,6 @@
+   gchar *user, *host, **args;
+   gboolean res;
+   GInputStream *is;
+-  GDataInputStream *error_stream;
+ 
+   if (!hostname)
+     return FALSE;
+@@ -791,14 +811,12 @@
+   ioctlsocket (stderr_fd, FIONBIO, &mode);
+   is = g_win32_input_stream_new (stderr_fd, FALSE);
+ #else /* !G_OS_WIN32 */
+-  fcntl (stderr_fd, F_SETFL, O_NONBLOCK | fcntl (stderr_fd, F_GETFL));
+   is = g_unix_input_stream_new (stderr_fd, FALSE);
+ #endif /* G_OS_WIN32 */
+-  error_stream = g_data_input_stream_new (is);
+-  g_object_unref (is);
+   
+-  res = look_for_stderr_errors (error_stream, error);
+-  g_object_unref (error_stream);
++  res = look_for_stderr_errors (is, error);
++
++  g_object_unref (is);
+ 
+   if (!res)
+     return FALSE;
diff -Nru vinagre-3.4.2/debian/patches/series vinagre-3.4.2/debian/patches/series
--- vinagre-3.4.2/debian/patches/series	2011-07-15 09:57:34.000000000 +0200
+++ vinagre-3.4.2/debian/patches/series	2013-01-08 20:48:51.000000000 +0100
@@ -0,0 +1 @@
+fix-vnc-through-ssh.patch

Attachment: signature.asc
Description: Digital signature


Reply to: