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

Bug#691664: unblock: libinfinity/0.5.2-5



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

Please unblock package libinfinity

Fix a crash that could occur when it is noticed at send time that a
connection is down. Fix a broken recommends.

0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch adds
some state tracking to see if the data processing handler is currently
in XML or TLS processing and frees resources accordingly.

0001-Rework-Gtk3-support.patch had to be refreshed to be able to apply
correctly. Sorry for not reordering the series so that this wouldn't
have been necessary.

unblock libinfinity/0.5.2-5

Thanks
Philipp Kern
Base version: libinfinity_0.5.2-3 from testing
Target version: libinfinity_0.5.2-5 from unstable

No hints in place.

 changelog                                                               |   18 
 control                                                                 |    2 
 patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch |  393 ++++++++++
 patches/0001-Rework-Gtk3-support.patch                                  |   47 -
 patches/series                                                          |    1 
 5 files changed, 435 insertions(+), 26 deletions(-)

gpgv: keyblock resource `/home/pkern/.gnupg/trustedkeys.gpg': file open error
gpgv: Signature made Sat 02 Jun 2012 10:19:37 PM UTC using DSA key ID B2CFCDD8
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on /tmp/tmpRo6cmB/libinfinity_0.5.2-3.dsc
gpgv: keyblock resource `/home/pkern/.gnupg/trustedkeys.gpg': file open error
gpgv: Signature made Tue 23 Oct 2012 10:18:42 PM UTC using RSA key ID 35D056EC
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on /tmp/tmpRo6cmB/libinfinity_0.5.2-5.dsc
diff -Nru libinfinity-0.5.2/debian/changelog libinfinity-0.5.2/debian/changelog
--- libinfinity-0.5.2/debian/changelog	2012-06-02 21:59:24.000000000 +0000
+++ libinfinity-0.5.2/debian/changelog	2012-10-23 22:08:40.000000000 +0000
@@ -1,3 +1,21 @@
+libinfinity (0.5.2-5) unstable; urgency=low
+
+  * Fix a crash when a connection goes down while attempting to
+    send data.
+  * Revert "Mark infinoted multi-arch:foreign". It would not be useful
+    in wheezy.
+  * Refresh patch "Rework Gtk3 support".
+
+ -- Philipp Kern <pkern@debian.org>  Wed, 24 Oct 2012 00:04:51 +0200
+
+libinfinity (0.5.2-4) unstable; urgency=low
+
+  * Recommend the correct infgtk3 library package in libinfinity-0.5-dbg.
+    (Closes: #680444)
+  * Mark infinoted multi-arch:foreign.
+
+ -- Philipp Kern <pkern@debian.org>  Tue, 10 Jul 2012 12:34:18 -0600
+
 libinfinity (0.5.2-3) unstable; urgency=low
 
   * Make infinoted the real daemon package, providing the non-versioned
diff -Nru libinfinity-0.5.2/debian/control libinfinity-0.5.2/debian/control
--- libinfinity-0.5.2/debian/control	2012-06-02 21:36:41.000000000 +0000
+++ libinfinity-0.5.2/debian/control	2012-10-23 22:06:54.000000000 +0000
@@ -42,7 +42,7 @@
 Architecture: any
 Pre-Depends: dpkg (>= 1.15.6)
 Depends: ${misc:Depends}, libinfinity-0.5-0 (= ${binary:Version})
-Recommends: libinfgtk-0.5-0 (= ${binary:Version}), infinoted-0.5 (= ${binary:Version})
+Recommends: libinfgtk3-0.5-0 (= ${binary:Version}), infinoted-0.5 (= ${binary:Version})
 Description: infinote-based collaborative editing - debugging symbols
  libinfinity is library to build collaborative text editors. Changes
  to the text buffers are synced to all other clients over a central server.
diff -Nru libinfinity-0.5.2/debian/patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch libinfinity-0.5.2/debian/patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch
--- libinfinity-0.5.2/debian/patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch	1970-01-01 00:00:00.000000000 +0000
+++ libinfinity-0.5.2/debian/patches/0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch	2012-10-23 22:03:30.000000000 +0000
@@ -0,0 +1,393 @@
+From 9469bdf6116857c9d4c3df154dadb942285c9d98 Mon Sep 17 00:00:00 2001
+From: Armin Burgmeier <armin@arbur.net>
+Date: Sun, 21 Oct 2012 17:14:35 +0200
+Subject: [PATCH] Fix a crash when a connection goes down while attempting to
+ send data
+
+2012-10-21  Armin Burgmeier  <armin@arbur.net>
+
+	* libinfinity/common/inf-xmpp-connection.c: Fix a crash that could
+	occur when it is noticed at send time that a connection is down.
+
+diff --git a/libinfinity/common/inf-xmpp-connection.c b/libinfinity/common/inf-xmpp-connection.c
+index b6f7fe3..6bf2edb 100644
+--- a/libinfinity/common/inf-xmpp-connection.c
++++ b/libinfinity/common/inf-xmpp-connection.c
+@@ -117,7 +117,7 @@ struct _InfXmppConnectionPrivate {
+   InfXmppConnectionMessage* last_message;
+ 
+   /* XML parsing */
+-  gboolean parsing; /* Whether we are currently in an XML parser callback */
++  guint parsing; /* Whether we are currently in an XML parser or GnuTLS callback */
+   xmlParserCtxtPtr parser;
+   xmlNodePtr root;
+   xmlNodePtr cur;
+@@ -543,6 +543,71 @@ inf_xmpp_connection_pop_message(InfXmppConnection* connection)
+   g_slice_free(InfXmppConnectionMessage, message);
+ }
+ 
++/* Note that this function does not change the state of xmpp, so it might
++ * rest in a state where it expects to actually have the resources available
++ * that are cleared here. Be sure to adjust state after having called
++ * this function. */
++static void
++inf_xmpp_connection_clear(InfXmppConnection* xmpp)
++{
++  InfXmppConnectionPrivate* priv;
++  priv = INF_XMPP_CONNECTION_PRIVATE(xmpp);
++
++  g_object_freeze_notify(G_OBJECT(xmpp));
++
++  if(priv->sasl_session != NULL)
++  {
++    inf_sasl_context_stop_session(priv->sasl_context, priv->sasl_session);
++    priv->sasl_session = NULL;
++  }
++
++  if(priv->sasl_remote_mechanisms != NULL)
++  {
++    g_free(priv->sasl_remote_mechanisms);
++    priv->sasl_remote_mechanisms = NULL;
++  }
++
++  if(priv->session != NULL)
++  {
++    gnutls_deinit(priv->session);
++    priv->session = NULL;
++
++    g_object_notify(G_OBJECT(xmpp), "tls-enabled");
++  }
++
++  if(priv->parser != NULL)
++  {
++    xmlFreeParserCtxt(priv->parser);
++    priv->parser = NULL;
++
++    if(priv->root != NULL)
++    {
++      xmlFreeNode(priv->root);
++      priv->root = NULL;
++      priv->cur = NULL;
++    }
++  }
++
++  while(priv->messages != NULL)
++    inf_xmpp_connection_pop_message(xmpp);
++
++  if(priv->buf != NULL)
++  {
++    g_assert(priv->doc != NULL);
++
++    xmlBufferFree(priv->buf);
++    xmlFreeDoc(priv->doc);
++
++    priv->buf = NULL;
++    priv->doc = NULL;
++  }
++
++  priv->pull_data = NULL;
++  priv->pull_len = 0;
++
++  g_object_thaw_notify(G_OBJECT(xmpp));
++}
++
+ static void
+ inf_xmpp_connection_send_chars(InfXmppConnection* xmpp,
+                                gconstpointer data,
+@@ -554,11 +619,18 @@ inf_xmpp_connection_send_chars(InfXmppConnection* xmpp,
+ 
+   priv = INF_XMPP_CONNECTION_PRIVATE(xmpp);
+ 
+-  g_assert(priv->status != INF_XMPP_CONNECTION_HANDSHAKING);
++  g_assert(priv->status != INF_XMPP_CONNECTION_HANDSHAKING &&
++           priv->status != INF_XMPP_CONNECTION_CLOSED);
+ 
+   if(INF_XMPP_CONNECTION_PRINT_TRAFFIC)
+     printf("\033[00;34m%.*s\033[00;00m\n", (int)len, (const char*)data);
+ 
++  /* From here on we go into a GnuTLS callback. Set this flag to prevent
++   * premature cleanup -- make sure that if the connection is being brought
++   * down from a GnuTLS callback then we keep the GnuTLS context around
++   * until the gntuls_record_send() call finishes. */
++  ++priv->parsing;
++
+   if(priv->session != NULL)
+   {
+     do
+@@ -576,6 +648,7 @@ inf_xmpp_connection_send_chars(InfXmppConnection* xmpp,
+         g_error_free(error);
+ 
+         inf_tcp_connection_close(priv->tcp);
++        break;
+       }
+       else if(cur_bytes == 0)
+       {
+@@ -596,6 +669,19 @@ inf_xmpp_connection_send_chars(InfXmppConnection* xmpp,
+     priv->position += len;
+     inf_tcp_connection_send(priv->tcp, data, len);
+   }
++
++  g_assert(priv->parsing > 0);
++  if(--priv->parsing == 0)
++  {
++    if(priv->status == INF_XMPP_CONNECTION_CLOSED)
++    {
++      /* Status changed to CLOSED, so while attempting to send data we noticed
++       * that the connection is down. Clear up. We didn't clean up in the
++       * disconnection callback because we wanted to keep the gnutls context
++       * alive until gnutls_record_send() returns. */
++      inf_xmpp_connection_clear(xmpp);
++    }
++  }
+ }
+ 
+ static void
+@@ -611,6 +697,7 @@ inf_xmpp_connection_send_xml(InfXmppConnection* xmpp,
+   xmlDocSetRootElement(priv->doc, xml);
+   xmlNodeDump(priv->buf, priv->doc, xml, 0, 0);
+   xmlUnlinkNode(xml);
++  xmlSetListDoc(xml, NULL);
+ 
+   inf_xmpp_connection_send_chars(
+     xmpp,
+@@ -618,72 +705,11 @@ inf_xmpp_connection_send_xml(InfXmppConnection* xmpp,
+     xmlBufferLength(priv->buf)
+   );
+ 
+-  xmlBufferEmpty(priv->buf);
+-}
+-
+-/* Note that this function does not change the state of xmpp, so it might
+- * rest in a state where it expects to actually have the resources available
+- * that are cleared here. Be sure to adjust state after having called
+- * this function. */
+-static void
+-inf_xmpp_connection_clear(InfXmppConnection* xmpp)
+-{
+-  InfXmppConnectionPrivate* priv;
+-  priv = INF_XMPP_CONNECTION_PRIVATE(xmpp);
+-
+-  g_object_freeze_notify(G_OBJECT(xmpp));
+-
+-  if(priv->sasl_session != NULL)
+-  {
+-    inf_sasl_context_stop_session(priv->sasl_context, priv->sasl_session);
+-    priv->sasl_session = NULL;
+-  }
+-
+-  if(priv->sasl_remote_mechanisms != NULL)
+-  {
+-    g_free(priv->sasl_remote_mechanisms);
+-    priv->sasl_remote_mechanisms = NULL;
+-  }
+-
+-  if(priv->session != NULL)
+-  {
+-    gnutls_deinit(priv->session);
+-    priv->session = NULL;
+-
+-    g_object_notify(G_OBJECT(xmpp), "tls-enabled");
+-  }
+-
+-  if(priv->parser != NULL)
+-  {
+-    xmlFreeParserCtxt(priv->parser);
+-    priv->parser = NULL;
+-
+-    if(priv->root != NULL)
+-    {
+-      xmlFreeNode(priv->root);
+-      priv->root = NULL;
+-      priv->cur = NULL;
+-    }
+-  }
+-
+-  while(priv->messages != NULL)
+-    inf_xmpp_connection_pop_message(xmpp);
+-
++  /* The connection might be closed & cleared as a result from
++   * inf_xmpp_connection_send_chars(), so make sure the buffer still
++   * exists before emptying it. */
+   if(priv->buf != NULL)
+-  {
+-    g_assert(priv->doc != NULL);
+-
+-    xmlBufferFree(priv->buf);
+-    xmlFreeDoc(priv->doc);
+-
+-    priv->buf = NULL;
+-    priv->doc = NULL;
+-  }
+-
+-  priv->pull_data = NULL;
+-  priv->pull_len = 0;
+-
+-  g_object_thaw_notify(G_OBJECT(xmpp));
++    xmlBufferEmpty(priv->buf);
+ }
+ 
+ /*
+@@ -778,7 +804,7 @@ inf_xmpp_connection_terminate(InfXmppConnection* xmpp)
+   }
+ 
+   /* Clear resources such as GnuTLS session and XML parser */
+-  if(!priv->parsing)
++  if(priv->parsing == 0)
+     inf_xmpp_connection_clear(xmpp);
+ 
+   /* The Change from CLOSING_STREAM to CLOSING_GNUTLS does not change
+@@ -1327,7 +1353,7 @@ inf_xmpp_connection_sasl_finish(InfXmppConnection* xmpp,
+     /* We might be in a XML callback here, so do not initiate the stream right
+      * now because it replaces the XML parser. The stream is reinitiated in
+      * received_cb(). */
+-    if(!priv->parsing)
++    if(priv->parsing == 0)
+       inf_xmpp_connection_initiate(xmpp);
+   }
+   else
+@@ -2973,13 +2999,13 @@ inf_xmpp_connection_received_cb(InfTcpConnection* tcp,
+ 
+   g_object_ref(xmpp);
+ 
+-  g_assert(priv->parsing == FALSE);
++  g_assert(priv->parsing == 0);
+   g_assert(priv->parser != NULL);
+ 
+   /* Let callbacks know that we start XML parsing. In case of deinitialization
+    * this tells them to keep the XML parser alive. We clean up after parsing
+    * in that case. */
+-  priv->parsing = TRUE;
++  ++priv->parsing;
+ 
+   if(priv->status != INF_XMPP_CONNECTION_HANDSHAKING)
+   {
+@@ -3058,35 +3084,37 @@ inf_xmpp_connection_received_cb(InfTcpConnection* tcp,
+              priv->pull_len == 0);
+   }
+ 
+-  priv->parsing = FALSE;
+-
+-  if(priv->status == INF_XMPP_CONNECTION_CLOSING_GNUTLS ||
+-     priv->status == INF_XMPP_CONNECTION_CLOSED)
++  g_assert(priv->parsing > 0);
++  if(--priv->parsing == 0)
+   {
+-    /* Status changed to CLOSING_GNUTLS, this means that someone called
+-     * _terminate(). Clean up any resources in use (XML parser, GnuTLS
+-     * session etc. */
+-    inf_xmpp_connection_clear(xmpp);
++    if(priv->status == INF_XMPP_CONNECTION_CLOSING_GNUTLS ||
++       priv->status == INF_XMPP_CONNECTION_CLOSED)
++    {
++      /* Status changed to CLOSING_GNUTLS, this means that someone called
++       * _terminate(). Clean up any resources in use (XML parser, GnuTLS
++       * session etc. */
++      inf_xmpp_connection_clear(xmpp);
+ 
+-    if(priv->status != INF_XMPP_CONNECTION_CLOSED)
++      if(priv->status != INF_XMPP_CONNECTION_CLOSED)
++      {
++        /* Close the TCP connection after remaining stuff has been sent out
++         * in case it is not closed already. */
++        inf_xmpp_connection_push_message(
++          xmpp,
++          inf_xmpp_connection_received_cb_sent_func,
++          NULL,
++          NULL
++        );
++      }
++    }
++    else if(priv->status == INF_XMPP_CONNECTION_AUTH_CONNECTED)
+     {
+-      /* Close the TCP connection after remaining stuff has been sent out
+-       * in case it is not closed already. */
+-      inf_xmpp_connection_push_message(
+-        xmpp,
+-        inf_xmpp_connection_received_cb_sent_func,
+-        NULL,
+-        NULL
+-      );
++      /* Reinitiate connection after successful authentication */
++      /* TODO: Only do this if status at the beginning of this call was
++       * AUTHENTICATING */
++      inf_xmpp_connection_initiate(xmpp);
+     }
+   }
+-  else if(priv->status == INF_XMPP_CONNECTION_AUTH_CONNECTED)
+-  {
+-    /* Reinitiate connection after successful authentication */
+-    /* TODO: Only do this if status at the beginning of this call was
+-     * AUTHENTICATING */
+-    inf_xmpp_connection_initiate(xmpp);
+-  }
+ 
+   g_object_unref(xmpp);
+ }
+@@ -3124,7 +3152,7 @@ inf_xmpp_connection_notify_status_cb(InfTcpConnection* tcp,
+        * signal handler) then we can't delete the XML parser here (otherwise
+        * libxml2 crashes, understandably). Instead, just set the status to
+        * closed and clean up after XML parsing in _received_cb(). */
+-      if(!priv->parsing)
++      if(priv->parsing == 0)
+         inf_xmpp_connection_clear(xmpp);
+ 
+       priv->status = INF_XMPP_CONNECTION_CLOSED;
+@@ -3364,7 +3392,7 @@ inf_xmpp_connection_init(GTypeInstance* instance,
+   priv->messages = NULL;
+   priv->last_message = NULL;
+ 
+-  priv->parsing = FALSE;
++  priv->parsing = 0;
+   priv->parser = NULL;
+   priv->root = NULL;
+   priv->cur = NULL;
+@@ -3707,7 +3735,7 @@ inf_xmpp_connection_xml_connection_close(InfXmlConnection* connection)
+     break;
+   case INF_XMPP_CONNECTION_CONNECTED:
+   case INF_XMPP_CONNECTION_AUTH_CONNECTED:
+-    g_assert(priv->parsing == FALSE);
++    g_assert(priv->parsing == 0);
+     inf_xmpp_connection_terminate(INF_XMPP_CONNECTION(connection));
+     /* TODO: Shouldn't we close the TCP connection here, as in
+      * inf_xmpp_connection_received_cb()? */
+@@ -3730,7 +3758,7 @@ inf_xmpp_connection_xml_connection_close(InfXmlConnection* connection)
+      * wait on either successful or unsuccessful authentication result,
+      * and then close the connection normally. Actually, this is what
+      * inf_xmpp_connection_deinitiate is supposed to do. */
+-    g_assert(priv->parsing == FALSE);
++    g_assert(priv->parsing == 0);
+     inf_xmpp_connection_terminate(INF_XMPP_CONNECTION(connection));
+     /* TODO: Shouldn't we close the TCP connection here, as in
+      * inf_xmpp_connection_received_cb()? */
+@@ -3759,12 +3787,22 @@ inf_xmpp_connection_xml_connection_send(InfXmlConnection* connection,
+ 
+   inf_xmpp_connection_send_xml(INF_XMPP_CONNECTION(connection), xml);
+ 
+-  inf_xmpp_connection_push_message(
+-    INF_XMPP_CONNECTION(connection),
+-    inf_xmpp_connection_xml_connection_send_sent,
+-    inf_xmpp_connection_xml_connection_send_free,
+-    xml
+-  );
++  /* It can happen that while calling inf_xmpp_connection_send_xml we
++   * notice that the connection is down. Only proceed with sent notification
++   * if the connection is still up and we could actually send the thing. */
++  if(priv->status == INF_XMPP_CONNECTION_READY)
++  {
++    inf_xmpp_connection_push_message(
++      INF_XMPP_CONNECTION(connection),
++      inf_xmpp_connection_xml_connection_send_sent,
++      inf_xmpp_connection_xml_connection_send_free,
++      xml
++    );
++  }
++  else
++  {
++    xmlFreeNode(xml);
++  }
+ }
+ 
+ /*
+-- 
+1.7.10.4
+
diff -Nru libinfinity-0.5.2/debian/patches/0001-Rework-Gtk3-support.patch libinfinity-0.5.2/debian/patches/0001-Rework-Gtk3-support.patch
--- libinfinity-0.5.2/debian/patches/0001-Rework-Gtk3-support.patch	2012-03-18 12:29:28.000000000 +0000
+++ libinfinity-0.5.2/debian/patches/0001-Rework-Gtk3-support.patch	2012-10-23 22:04:43.000000000 +0000
@@ -26,11 +26,11 @@
  libinftextgtk/Makefile.am |   35 +++++++++++++++++++++++++++--------
  5 files changed, 80 insertions(+), 20 deletions(-)
 
-diff --git a/Makefile.am b/Makefile.am
-index 24c312b..61f8bb1 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -7,12 +7,12 @@ pkgconfig_DATA = \
+Index: libinfinity-0.5.2/Makefile.am
+===================================================================
+--- libinfinity-0.5.2.orig/Makefile.am	2012-10-24 00:04:33.608932275 +0200
++++ libinfinity-0.5.2/Makefile.am	2012-10-24 00:04:39.069053873 +0200
+@@ -7,12 +7,12 @@
  
  if WITH_INFGTK
  SUBDIRS += libinfgtk
@@ -45,11 +45,11 @@
  endif
  
  if WITH_INFINOTED
-diff --git a/configure.ac b/configure.ac
-index 00bc007..351ab71 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -122,13 +122,18 @@ if test "x$with_gtk3" = "xyes"
+Index: libinfinity-0.5.2/configure.ac
+===================================================================
+--- libinfinity-0.5.2.orig/configure.ac	2012-10-24 00:04:35.528975035 +0200
++++ libinfinity-0.5.2/configure.ac	2012-10-24 00:04:39.069053873 +0200
+@@ -122,13 +122,18 @@
  then
  	gtk_requirement="gtk+-3.0 >= 2.90.6"
  	gtk_version=3
@@ -68,7 +68,7 @@
  
  ###################################
  # libinftextgtk optional package
-@@ -321,8 +326,8 @@ AC_CONFIG_FILES([
+@@ -326,8 +331,8 @@
  AC_CONFIG_FILES(
    libinfinity-libinfinity_api_version.pc:libinfinity.pc.in
    libinftext-libinfinity_api_version.pc:libinftext.pc.in
@@ -79,7 +79,7 @@
  )
  
  AC_OUTPUT
-@@ -334,6 +339,7 @@ Build optional packages:
+@@ -339,6 +344,7 @@
    infinoted: $with_infinoted
  
  Enable support for:
@@ -87,10 +87,10 @@
    avahi: $use_avahi
    libdaemon: $use_libdaemon
    pam: $use_pam
-diff --git a/libinfgtk/Makefile.am b/libinfgtk/Makefile.am
-index 1826ae9..7daa6d3 100644
---- a/libinfgtk/Makefile.am
-+++ b/libinfgtk/Makefile.am
+Index: libinfinity-0.5.2/libinfgtk/Makefile.am
+===================================================================
+--- libinfinity-0.5.2.orig/libinfgtk/Makefile.am	2012-10-24 00:04:33.608932275 +0200
++++ libinfinity-0.5.2/libinfgtk/Makefile.am	2012-10-24 00:04:39.073053962 +0200
 @@ -1,24 +1,25 @@
  # TODO: Find a way to have the version number set automatically.
 +if WITH_GTK3
@@ -124,7 +124,7 @@
  	inf-gtk-browser-model.h \
  	inf-gtk-browser-model-filter.h \
  	inf-gtk-browser-model-sort.h \
-@@ -30,7 +31,7 @@ libinfgtk_0_5_la_HEADERS = \
+@@ -30,7 +31,7 @@
  	inf-gtk-chat.h \
  	inf-gtk-io.h
  
@@ -133,7 +133,7 @@
  	inf-gtk-browser-model.c \
  	inf-gtk-browser-model-filter.c \
  	inf-gtk-browser-model-sort.c \
-@@ -41,3 +42,21 @@ libinfgtk_0_5_la_SOURCES = \
+@@ -41,3 +42,21 @@
  	inf-gtk-certificate-view.c \
  	inf-gtk-chat.c \
  	inf-gtk-io.c
@@ -155,10 +155,10 @@
 +libinfgtk_0_5_ladir = \
 +	$(includedir)/libinfgtk-$(LIBINFINITY_API_VERSION)/libinfgtk
 +endif
-diff --git a/libinftextgtk/Makefile.am b/libinftextgtk/Makefile.am
-index 1dd0daa..0bdbafe 100644
---- a/libinftextgtk/Makefile.am
-+++ b/libinftextgtk/Makefile.am
+Index: libinfinity-0.5.2/libinftextgtk/Makefile.am
+===================================================================
+--- libinfinity-0.5.2.orig/libinftextgtk/Makefile.am	2012-10-24 00:04:33.608932275 +0200
++++ libinfinity-0.5.2/libinftextgtk/Makefile.am	2012-10-24 00:04:39.073053962 +0200
 @@ -1,34 +1,53 @@
  # TODO: Find a way to have the version number set automatically.
 +if WITH_GTK3
@@ -221,6 +221,3 @@
 +libinftextgtk_0_5_ladir = \
 +	$(includedir)/libinftextgtk-$(LIBINFINITY_API_VERSION)/libinftextgtk
 +endif
--- 
-1.7.9.1
-
diff -Nru libinfinity-0.5.2/debian/patches/series libinfinity-0.5.2/debian/patches/series
--- libinfinity-0.5.2/debian/patches/series	2012-06-02 16:19:15.000000000 +0000
+++ libinfinity-0.5.2/debian/patches/series	2012-10-23 22:04:19.000000000 +0000
@@ -1,5 +1,6 @@
 0001-Check-for-libm-for-libinftextgtk.patch
 0001-Fix-a-few-enumeration-type-registration.patch
+0001-Fix-a-crash-when-a-connection-goes-down-while-attemp.patch
 0001-Rework-Gtk3-support.patch
 0002-gtk3-test-Makefile.am.patch
 0003-gtk3-docs.patch
Hints needed:
unblock libinfinity/0.5.2-5

Reply to: