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 <nilay@cs.wisc.edu>
This commit is contained in:
Michael Adler
2014-10-20 16:45:08 -05:00
parent a3fe4c0662
commit 7254d5742a

View File

@@ -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);