diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2025-02-04 12:13:23 +0100 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2025-02-04 14:54:37 +0000 |
| commit | 39e250d27f8ab094fbf992d5569eec06d5eb7a10 (patch) | |
| tree | 8042010882b865338e364b018fb1b64144a462fd /executor/executor_bsd.h | |
| parent | 44c01590d11f09b1689d02f6c3e26ab9d1b9dbb2 (diff) | |
executor: favor MAP_FIXED_NOREPLACE over MAP_FIXED
MAP_FIXED_NOREPLACE allows to fail early if we happened to overlap with
an existing memory mapping. It should help detects bugs #5674 at an
earlier stage, before it led to memory corruptions.
MAP_FIXED_NOREPLACE is supported from Linux 4.17, which is okay for all
syzkaller use cases on syzbot.
There's no such option for some of the supported OSes, so set it
depending on the configuration we're building for.
Diffstat (limited to 'executor/executor_bsd.h')
| -rw-r--r-- | executor/executor_bsd.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/executor/executor_bsd.h b/executor/executor_bsd.h index e8530f614..0eb76c588 100644 --- a/executor/executor_bsd.h +++ b/executor/executor_bsd.h @@ -27,7 +27,7 @@ static void os_init(int argc, char** argv, void* data, size_t data_size) int prot = PROT_READ | PROT_WRITE | PROT_EXEC; #endif - int flags = MAP_ANON | MAP_PRIVATE | MAP_FIXED; + int flags = MAP_ANON | MAP_PRIVATE | MAP_FIXED_EXCLUSIVE; #if GOOS_freebsd // Fail closed if the chosen data offset conflicts with an existing mapping. flags |= MAP_EXCL; |
