about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2016-08-28 15:58:00 +0200
committerMichael Biebl <biebl@debian.org>2016-08-28 16:11:11 +0200
commit6d50d5735db3c06d7e6956b8ac6de9c7c286319f (patch)
tree11b998abd87155c9374f0cb6e8a33aeeb0e23481
parentecd2cd5faa743014b7845e098600927dcb47ad24 (diff)
Export _IO_stdin_used symbol in NetworkManager.ver
This symbol is required to decide which version of certain IO functions
to use on various architectures. So we can't strip away the symbol from
the NetworkManager binary as this will lead to segfaults on those
architectures.

Thanks James Cowgill and Aurelien Jarno for the bug report and detailed
analysis.

Closes: #835550
-rw-r--r--debian/changelog10
-rw-r--r--debian/patches/Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch36
-rw-r--r--debian/patches/series1
3 files changed, 47 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index eb00b2dd..d38a964c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+network-manager (1.4.0-3) UNRELEASED; urgency=medium
+
+  * Export _IO_stdin_used symbol in NetworkManager.ver.
+    This symbol is required to decide which version of certain IO functions
+    to use on various architectures. So we can't strip away the symbol from
+    the NetworkManager binary as this will lead to segfaults on those
+    architectures. (Closes: #835550)
+
+ -- Michael Biebl <biebl@debian.org>  Sun, 28 Aug 2016 15:49:46 +0200
+
 network-manager (1.4.0-2) unstable; urgency=medium
 
   * Correctly set the connectivity state if we enforce online mode with
diff --git a/debian/patches/Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch b/debian/patches/Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch
new file mode 100644
index 00000000..999494d4
--- /dev/null
+++ b/debian/patches/Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch
@@ -0,0 +1,36 @@
+From: Michael Biebl <biebl@debian.org>
+Date: Sat, 27 Aug 2016 23:40:42 +0200
+Subject: Export _IO_stdin_used symbol in NetworkManager.ver
+
+This symbol is required to decide which version of certain IO functions
+to use on various architectures. So we can't strip away the symbol from
+the NetworkManager binary as this will lead to segfaults on those
+architectures.
+
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835550
+Bug: https://bugzilla.gnome.org/show_bug.cgi?id=770515
+---
+ src/NetworkManager.ver | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/NetworkManager.ver b/src/NetworkManager.ver
+index c91affc..d5358e5 100644
+--- a/src/NetworkManager.ver
++++ b/src/NetworkManager.ver
+@@ -5,6 +5,16 @@ global:
+ 	_nm*;
+ 	NM*;
+ 	_NM*;
++
++	/* The _IO_stdin_used symbol is used by the GNU libc to determine
++	   which version of the I/O function should be used.  Not
++	   exporting it means that the "old" version is used, causing
++	   crashes or other issues on some architectures.  It should be
++	   exported as an anonymous tag, but ld does not support mixing
++	   anonymous version tags with other version tags.  Fortunately
++	   the GNU libc is able to cope with the symbol having the wrong
++	   version tag. */
++	_IO_stdin_used;
+ local:
+ 	*;
+ };
diff --git a/debian/patches/series b/debian/patches/series
index 140a0339..404165cc 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,3 +4,4 @@ fix-arping-path.patch
 Don-t-make-NetworkManager-D-Bus-activatable.patch
 systemd-Don-t-enable-NetworkManager-wait-online.service-s.patch
 Fix-iscsiadm-path.patch
+Export-_IO_stdin_used-symbol-in-NetworkManager.ver.patch