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

Bug#277699: XFree86 server broken on 2.6.9 32bit kernel running on Opteron



Package: xserver-xfree86
Version: 4.3.0.dfsg.1-8
Severity: important
Tags: patch

I cannot start X since I downgraded (from 64bit kernel) to i386 PAE 
enabled 2.6.9 kernel, as XFree86 binary available in Debian is not 
compatible with no-exec changes.  They die with sigsegv when trying
to initialize first extension they load.

Please apply patch below or (better) switch to Xorg or fix problem
in some other way.

Actually whole elfloader.c needs some serious cleanup on #ifdefs - archs
without mprotect should provide empty one instead of scattering
#ifdefs (each checking for different set of architectures!) through
the code.
						Thanks,
							Petr Vandrovec


--- /usr/src/debian/xfree86-4.3.0.dfsg.1/build-tree/xc/programs/Xserver/hw/xfree86/loader/elfloader.c.orig	2004-09-24 09:57:59.000000000 +0200
+++ /usr/src/debian/xfree86-4.3.0.dfsg.1/build-tree/xc/programs/Xserver/hw/xfree86/loader/elfloader.c	2004-10-21 21:55:21.000000000 +0200
@@ -2740,12 +2740,10 @@
 	elffile->lsection[j].size=SecSize(i);
 	elffile->lsection[j].flags=flags;
 	switch (SecType(i)) {
-#ifdef __OpenBSD__
 	case SHT_PROGBITS:
 	    mprotect(elffile->lsection[j].saddr, SecSize(i), 
 		     PROT_READ|PROT_WRITE|PROT_EXEC);
 	    break;
-#endif
 	case SHT_SYMTAB:
 	    elffile->symtab = (Elf_Sym *)elffile->saddr[i];
 	    elffile->symndx = i;



Reply to: