summarylogtreecommitdiffstats
path: root/08-fix-ipv6-connect.patch
diff options
context:
space:
mode:
Diffstat (limited to '08-fix-ipv6-connect.patch')
-rw-r--r--08-fix-ipv6-connect.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/08-fix-ipv6-connect.patch b/08-fix-ipv6-connect.patch
new file mode 100644
index 000000000000..b8815a7de0dd
--- /dev/null
+++ b/08-fix-ipv6-connect.patch
@@ -0,0 +1,28 @@
+Description: fix crash when falling back from IPv6 to IPv4
+ Previously, loudmouth would set socket->watch_connect to NULL when
+ encountering an error. When the connection attempt (to a different IPv6)
+ succeeded later on, _lm_socket_succeeded would therefore not remove the
+ socket_connect_cb watcher, leading to socket_connect_cb being called upon
+ socket activity and segfaulting the program.
+Author: Michael Stapelberg <stapelberg@debian.org>
+Bug-Debian: http://bugs.debian.org/631729
+Forwarded: no
+Last-Update: 2013-02-03
+--- a/loudmouth/lm-socket.c
++++ b/loudmouth/lm-socket.c
+@@ -529,7 +529,6 @@
+ /* error condition, but might be possible to recover
+ * from it (by connecting to the next host) */
+ if (!_lm_socket_failed_with_error (connect_data, err)) {
+- socket->watch_connect = NULL;
+ goto out;
+ }
+ }
+@@ -560,7 +559,6 @@
+ _lm_sock_close (connect_data->fd);
+ _lm_socket_failed_with_error (connect_data, err);
+
+- socket->watch_connect = NULL;
+ goto out;
+ }
+ }