Author: branden Date: 2004-12-02 23:24:44 -0500 (Thu, 02 Dec 2004) New Revision: 2043
Modified: trunk/debian/CHANGESETS trunk/debian/TODO trunk/debian/changelog trunk/debian/patches/071_nonexecutable_malloced_mem.diff trunk/debian/patches/600_amd64_support.diff Log: Apply patch from Richard Mortimer to fix the XFree86 X server's ELF object loader to set the PROT_EXEC flag on mmap()ed modules regardless of machine architecture. (It was already trying to do this, but there are two preprocessor statements involved, and we were only patching one.) (Closes: #280384) Modified: trunk/debian/CHANGESETS =================================================================== --- trunk/debian/CHANGESETS 2004-12-03 02:46:41 UTC (rev 2042) +++ trunk/debian/CHANGESETS 2004-12-03 04:24:44 UTC (rev 2043) @@ -323,4 +323,11 @@ target work again. 2036 +Apply patch from Richard Mortimer to fix the XFree86 X server's ELF object +loader to set the PROT_EXEC flag on mmap()ed modules regardless of machine +architecture. (It was already trying to do this, but there are two +preprocessor statements involved, and we were only patching one.) +(Closes: #280384) + 2043 + vim:set ai et sts=4 sw=4 tw=80: Modified: trunk/debian/TODO =================================================================== --- trunk/debian/TODO 2004-12-03 02:46:41 UTC (rev 2042) +++ trunk/debian/TODO 2004-12-03 04:24:44 UTC (rev 2043) @@ -17,11 +17,6 @@ 4.3.0.dfsg.1-9 -------------- -* Apply patch from Richard Mortimer to fix the XFree86 X server's ELF object - loader to set the PROT_EXEC flag on mmap()ed modules regardless of machine - architecture. (It was already trying to do this, but there are two - preprocessor statements involved, and we were only patching one.) - See #280384. * Rev XTerm to patch #197, which fixes #246398 and several other bugs. 4.3.0.dfsg.1-10 Modified: trunk/debian/changelog =================================================================== --- trunk/debian/changelog 2004-12-03 02:46:41 UTC (rev 2042) +++ trunk/debian/changelog 2004-12-03 04:24:44 UTC (rev 2043) @@ -192,6 +192,12 @@ one that works on systems that do not have a PCI bus numbered 0. Thanks, David! (Closes: #279436) + * Apply patch from Richard Mortimer to fix the XFree86 X server's ELF object + loader to set the PROT_EXEC flag on mmap()ed modules regardless of machine + architecture. (It was already trying to do this, but there are two + preprocessor statements involved, and we were only patching one.) + (Closes: #280384) + Changes by Denis Barbier and Fabio M. Di Nitto: * Edit xc/programs/xkbcomp/symbols/pc/Imakefile so that the new pc/us_intl @@ -283,7 +289,7 @@ Thomas Beige. Resolves CAN-2004-0914: memory leak, improper use of signed integers, and overflows in the Xpm library. Resync offset in patch #200. - -- Branden Robinson <[EMAIL PROTECTED]> Thu, 2 Dec 2004 21:43:03 -0500 + -- Branden Robinson <[EMAIL PROTECTED]> Thu, 2 Dec 2004 23:23:30 -0500 xfree86 (4.3.0.dfsg.1-8) unstable; urgency=high Modified: trunk/debian/patches/071_nonexecutable_malloced_mem.diff =================================================================== --- trunk/debian/patches/071_nonexecutable_malloced_mem.diff 2004-12-03 02:46:41 UTC (rev 2042) +++ trunk/debian/patches/071_nonexecutable_malloced_mem.diff 2004-12-03 04:24:44 UTC (rev 2043) @@ -5,11 +5,13 @@ We understand it is Linus' position that programs that assume data to be executable are broken, so we enable this code for all Linux platforms. -Original patch (before upstream applied its own version) was by David Mosberger. +An earlier version of this patch only corrected the first #if. Thanks to +Ron Murray, Admar Schoonen, Jurij Smakov, Dieter Jurzitza, and Richard +Mortimer for their analysis which helped uncover the other two instances. -diff -urN xc/programs/Xserver/hw/xfree86/loader/elfloader.c xc.new/programs/Xserver/hw/xfree86/loader/elfloader.c ---- xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2004-02-07 17:33:29.000000000 -0500 -+++ xc.new/programs/Xserver/hw/xfree86/loader/elfloader.c 2004-02-07 17:29:03.000000000 -0500 +diff -u xc/programs/Xserver/hw/xfree86/loader/elfloader.c~ xc.new/programs/Xserver/hw/xfree86/loader/elfloader.c +--- xc/programs/Xserver/hw/xfree86/loader/elfloader.c~ 2004-12-02 21:54:11.000000000 -0500 ++++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2004-12-02 22:01:41.000000000 -0500 @@ -957,7 +957,7 @@ ErrorF( "ELFCreateGOT() Unable to reallocate memory!!!!\n" ); return FALSE; @@ -19,3 +21,21 @@ { unsigned long page_size = getpagesize(); unsigned long round; +@@ -2728,7 +2728,7 @@ + elffile->lsection[j].size=SecSize(i); + elffile->lsection[j].flags=flags; + switch (SecType(i)) { +-#ifdef __OpenBSD__ ++#if defined(linux) || defined(__OpenBSD__) + case SHT_PROGBITS: + mprotect(elffile->lsection[j].saddr, SecSize(i), + PROT_READ|PROT_WRITE|PROT_EXEC); +@@ -2925,7 +2925,7 @@ + ErrorF( "Unable to allocate ELF sections\n" ); + return NULL; + } +-# if defined(linux) && defined(__ia64__) || defined(__OpenBSD__) ++# if defined(linux) || defined(__OpenBSD__) + { + unsigned long page_size = getpagesize(); + unsigned long round; Modified: trunk/debian/patches/600_amd64_support.diff =================================================================== --- trunk/debian/patches/600_amd64_support.diff 2004-12-03 02:46:41 UTC (rev 2042) +++ trunk/debian/patches/600_amd64_support.diff 2004-12-03 04:24:44 UTC (rev 2043) @@ -68,8 +68,8 @@ # define ARCH_PCI_INIT ix86PciInit # define INCLUDE_XF86_MAP_PCI_MEM # define INCLUDE_XF86_NO_DOMAIN ---- xc/programs/Xserver/hw/xfree86/loader/elfloader.c~ 2004-11-08 14:25:42.000000000 -0500 -+++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2004-11-08 14:33:41.000000000 -0500 +--- xc/programs/Xserver/hw/xfree86/loader/elfloader.c~ 2004-12-02 22:09:27.000000000 -0500 ++++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c 2004-12-02 22:11:58.000000000 -0500 @@ -32,9 +32,6 @@ # include <sys/fcntl.h> #endif @@ -88,24 +88,3 @@ # define MergeSectionAlloc # define MMAP_PROT (PROT_READ | PROT_WRITE | PROT_EXEC) # if !defined(linux) -@@ -2740,9 +2736,9 @@ - elffile->lsection[j].size=SecSize(i); - elffile->lsection[j].flags=flags; - switch (SecType(i)) { --#ifdef __OpenBSD__ -+#if (defined(linux) && defined(__x86_64__)) || defined(__OpenBSD__) - case SHT_PROGBITS: -- mprotect(elffile->lsection[j].saddr, SecSize(i), -+ mprotect(elffile->lsection[j].saddr, SecSize(i), - PROT_READ|PROT_WRITE|PROT_EXEC); - break; - #endif -@@ -2937,7 +2933,7 @@ - ErrorF( "Unable to allocate ELF sections\n" ); - return NULL; - } --# if defined(linux) && defined(__ia64__) || defined(__OpenBSD__) -+# if (defined(linux) && defined(__ia64__)) || defined(__OpenBSD__) - { - unsigned long page_size = getpagesize(); - unsigned long round;