From 39e250d27f8ab094fbf992d5569eec06d5eb7a10 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Tue, 4 Feb 2025 12:13:23 +0100 Subject: 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. --- executor/executor_bsd.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'executor/executor_bsd.h') 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; -- cgit mrf-deployment