From 0c068368ccc1fb46bfa33c06ac81b916eaa21a36 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Thu, 18 May 2006 08:15:08 +0000 Subject: [PATCH] fix mprotect for i386 2006-05-18 Matthew Flatt * lightning/i386/asm.h: Fix test for extending the mprotect area towards lower addresses. git-archimport-id: bonzini@gnu.org--2004b/lightning--stable--1.2--patch-21 --- ChangeLog | 5 +++++ lightning/i386/funcs.h | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1930fbdcf..c7312df28 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-05-18 Matthew Flatt + + * lightning/i386/asm.h: Fix test for extending the mprotect area + towards lower addresses. + 2006-05-16 Bruno Haible * lightning/asm-common.h: Don't use __func__ nor __FUNCTION__ if diff --git a/lightning/i386/funcs.h b/lightning/i386/funcs.h index d57e14e25..ee26d4699 100644 --- a/lightning/i386/funcs.h +++ b/lightning/i386/funcs.h @@ -74,12 +74,13 @@ jit_flush_code(void *dest, void *end) /* See if we can extend the previously mprotect'ed memory area towards higher addresses: the starting address remains the same as before. */ - if (page >= prev_page && page <= prev_page + prev_length) + else if (page >= prev_page && page <= prev_page + prev_length) prev_length = page + length - prev_page; /* See if we can extend the previously mprotect'ed memory area towards lower addresses: the highest address remains the same as before. */ - else if (page < prev_page && page + length <= prev_page + prev_length) + else if (page < prev_page && page + length >= prev_page + && page + length <= prev_page + prev_length) prev_length += prev_page - page, prev_page = page; /* Nothing to do, replace the area. */