From 7254d5742a7b9df0f24fcf5b35e231a0fa0d777a Mon Sep 17 00:00:00 2001 From: Michael Adler Date: Mon, 20 Oct 2014 16:45:08 -0500 Subject: sim: mmap: correct behavior for fixed address Change mmap fixed address request to return an error if the mapping is impossible due to conflict instead of what I believe used to be silent corruption. Committed by: Nilay Vaish --- src/sim/syscall_emul.hh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/sim') diff --git a/src/sim/syscall_emul.hh b/src/sim/syscall_emul.hh index a106a1939..034a7043b 100644 --- a/src/sim/syscall_emul.hh +++ b/src/sim/syscall_emul.hh @@ -1256,10 +1256,8 @@ mmapFunc(SyscallDesc *desc, int num, LiveProcess *p, ThreadContext *tc) // whether we clobber them or not depends on whether the caller // specified MAP_FIXED if (flags & OS::TGT_MAP_FIXED) { - // MAP_FIXED specified: clobber existing mappings - warn("mmap: MAP_FIXED at 0x%x overwrites existing mappings\n", - start); - clobber = true; + // MAP_FIXED specified: map attempt fails + return -EINVAL; } else { // MAP_FIXED not specified: ignore suggested start address warn("mmap: ignoring suggested map address 0x%x\n", start); -- cgit v1.2.3