mirror of
https://github.com/reactos/syzkaller.git
synced 2024-10-07 00:53:27 +00:00
executor: use MAP_EXCL to map the data region on FreeBSD
We've had some problems where the default SYZ_DATA_OFFSET collides with a mapping created by the C runtime. MAP_EXCL ensures that mmap() will fail in this case, so such problems become a bit easier to diagnose.
This commit is contained in:
parent
ff51e5229e
commit
6ba54cf64e
@ -26,7 +26,13 @@ static void os_init(int argc, char** argv, void* data, size_t data_size)
|
||||
int prot = PROT_READ | PROT_WRITE | PROT_EXEC;
|
||||
#endif
|
||||
|
||||
if (mmap(data, data_size, prot, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0) != data)
|
||||
int flags = MAP_ANON | MAP_PRIVATE | MAP_FIXED;
|
||||
#if GOOS_freebsd
|
||||
// Fail closed if the chosen data offset conflicts with an existing mapping.
|
||||
flags |= MAP_EXCL;
|
||||
#endif
|
||||
|
||||
if (mmap(data, data_size, prot, flags, -1, 0) != data)
|
||||
fail("mmap of data segment failed");
|
||||
|
||||
// Makes sure the file descriptor limit is sufficient to map control pipes.
|
||||
|
Loading…
Reference in New Issue
Block a user