r4273 - in glibc-package/trunk/debian: . patches patches/mips
Author: aurel32
Date: 2010-05-20 09:55:35 +0000 (Thu, 20 May 2010)
New Revision: 4273
Added:
glibc-package/trunk/debian/patches/mips/submitted-rld_map.diff
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/series
Log:
* debian/patches/mips/submitted-rld_map.diff: don't segfault for MIPS
binaries with RLD_MAP set to 0. Closes: #579917.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2010-05-19 21:02:51 UTC (rev 4272)
+++ glibc-package/trunk/debian/changelog 2010-05-20 09:55:35 UTC (rev 4273)
@@ -15,8 +15,10 @@
Closes: #578870.
* debian/script.in/nsscheck.sh: correctly detect stopped and running
services. Closes: #573247, #575868.
+ * debian/patches/mips/submitted-rld_map.diff: don't segfault for MIPS
+ binaries with RLD_MAP set to 0. Closes: #579917.
- -- Aurelien Jarno <aurel32@debian.org> Wed, 19 May 2010 19:53:13 +0200
+ -- Aurelien Jarno <aurel32@debian.org> Thu, 20 May 2010 11:53:51 +0200
eglibc (2.10.2-8) unstable; urgency=low
Added: glibc-package/trunk/debian/patches/mips/submitted-rld_map.diff
===================================================================
--- glibc-package/trunk/debian/patches/mips/submitted-rld_map.diff (rev 0)
+++ glibc-package/trunk/debian/patches/mips/submitted-rld_map.diff 2010-05-20 09:55:35 UTC (rev 4273)
@@ -0,0 +1,19 @@
+2010-05-20 Aurelien Jarno <aurelien@aurel32.net>
+
+ * sysdeps/mips/dl-machine.h (ELF_MACHINE_DEBUG_SETUP): test for
+ RLD_MAP pointer before using it.
+
+diff --git a/ports/sysdeps/mips/dl-machine.h b/ports/sysdeps/mips/dl-machine.h
+index 123b4d6..3bed59c 100644
+--- a/ports/sysdeps/mips/dl-machine.h
++++ b/ports/sysdeps/mips/dl-machine.h
+@@ -70,7 +70,8 @@
+ /* If there is a DT_MIPS_RLD_MAP entry in the dynamic section, fill it in
+ with the run-time address of the r_debug structure */
+ #define ELF_MACHINE_DEBUG_SETUP(l,r) \
+-do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \
++do { if ((l)->l_info[DT_MIPS (RLD_MAP)] && \
++ (l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) \
+ *(ElfW(Addr) *)((l)->l_info[DT_MIPS (RLD_MAP)]->d_un.d_ptr) = \
+ (ElfW(Addr)) (r); \
+ } while (0)
Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series 2010-05-19 21:02:51 UTC (rev 4272)
+++ glibc-package/trunk/debian/patches/series 2010-05-20 09:55:35 UTC (rev 4273)
@@ -140,6 +140,7 @@
mips/local-lazy-eval.diff
mips/local-r10k.diff
+mips/submitted-rld_map.diff
s390/submitted-nexttowardf.diff
s390/submitted-siginfo.diff
Reply to: