From a2afbf63f0c74f5338d6e8c4a5f4f97a71bf90b1 Mon Sep 17 00:00:00 2001 From: PaX team Date: Sun, 21 Sep 2008 17:39:42 +0200 Subject: [PATCH] Fix compatibility with PaX. --- Makefile | 1 + libs/lrmi-0.10/lrmi.c | 6 +++--- v86_mem.c | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 84da0c5..3b2ae00 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ endif CFLAGS ?= -Wall -g -O2 CFLAGS += -I$(KDIR)/include +LDFLAGS += -Wl,-z,execheap ifeq ($(call config_opt,CONFIG_X86EMU),true) CFLAGS += -Ilibs/x86emu diff --git a/libs/lrmi-0.10/lrmi.c b/libs/lrmi-0.10/lrmi.c index de75e75..97b6ae2 100644 --- a/libs/lrmi-0.10/lrmi.c +++ b/libs/lrmi-0.10/lrmi.c @@ -341,7 +341,7 @@ LRMI_init(void) * an explanation */ if (!map_file((void *)0, 0x502, - PROT_READ | PROT_WRITE | PROT_EXEC, + PROT_READ | PROT_WRITE, MAP_FIXED | MAP_SHARED, "/dev/mem", 0)) { real_mem_deinit(); return 0; @@ -355,8 +355,8 @@ LRMI_init(void) return 0; } - if (!map_file((void *)0xc0000, 0x30000, - PROT_READ | PROT_WRITE | PROT_EXEC, + if (!map_file((void *)0xc0000, 0x40000, + PROT_READ | PROT_EXEC, MAP_FIXED | MAP_SHARED, "/dev/mem", 0xc0000)) { munmap((void *)0, 0x502); munmap((void *)0xa0000, 0x20000); diff --git a/v86_mem.c b/v86_mem.c index 644c769..17c898b 100644 --- a/v86_mem.c +++ b/v86_mem.c @@ -240,7 +240,7 @@ int v86_mem_init(void) * modes will not work correctly on some cards (e.g. nVidia GeForce * 8600M, PCI ID 10de:0425). */ - mem_low = map_file(NULL, IVTBDA_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC, + mem_low = map_file(NULL, IVTBDA_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, "/dev/mem", IVTBDA_BASE); if (!mem_low) { real_mem_deinit(); @@ -293,7 +293,7 @@ int v86_mem_init(void) } vbios_size = tmp[2] * 0x200; ulog(LOG_DEBUG, "VBIOS at %5x-%5x\n", VBIOS_BASE, VBIOS_BASE + vbios_size - 1); - mem_vbios = map_file(NULL, vbios_size, PROT_READ | PROT_WRITE | PROT_EXEC, + mem_vbios = map_file(NULL, vbios_size, PROT_READ | PROT_EXEC, MAP_SHARED, "/dev/mem", VBIOS_BASE); if (!mem_vbios) { @@ -303,7 +303,7 @@ int v86_mem_init(void) } /* Map the system BIOS */ - mem_sbios = map_file(NULL, SBIOS_SIZE, PROT_READ | PROT_WRITE | PROT_EXEC, + mem_sbios = map_file(NULL, SBIOS_SIZE, PROT_READ | PROT_EXEC, MAP_SHARED, "/dev/mem", SBIOS_BASE); if (!mem_sbios) { ulog(LOG_ERR, "Failed to mmap the System BIOS as %5x.", SBIOS_BASE); -- 2.11.4.GIT