diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2023-04-21 14:45:31 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2023-04-24 18:52:43 +0200 |
| commit | 65320f8e65b2fd5215822c6fc85034cec63dd887 (patch) | |
| tree | fdb5ed9e9290f193c051f15eb69624d01161ad5a /sys | |
| parent | 3097c1c27c156dde5dae8af2d6824c24f3f671fa (diff) | |
sys/netbsd: neutralize compat_50_mknod
Otherwise we may end up corrupting device memory.
See https://groups.google.com/g/syzkaller-netbsd-bugs/c/Iy8-NZ_M9Ug/m/5jKKfncsAQAJ
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/netbsd/init_test.go | 21 | ||||
| -rw-r--r-- | sys/targets/common.go | 2 |
2 files changed, 22 insertions, 1 deletions
diff --git a/sys/netbsd/init_test.go b/sys/netbsd/init_test.go new file mode 100644 index 000000000..1f0abfad3 --- /dev/null +++ b/sys/netbsd/init_test.go @@ -0,0 +1,21 @@ +// Copyright 2023 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +package netbsd_test + +import ( + "testing" + + "github.com/google/syzkaller/prog" + _ "github.com/google/syzkaller/sys/netbsd/gen" + "github.com/google/syzkaller/sys/targets" +) + +func TestNetBSDNeutralize(t *testing.T) { + prog.TestDeserializeHelper(t, targets.NetBSD, targets.AMD64, nil, []prog.DeserializeTest{ + { + In: `compat_50_mknod(&(0x7f0000000000)='./file0\x00', 0x2001, 0x400)`, + Out: `compat_50_mknod(&(0x7f0000000000)='./file0\x00', 0x8001, 0x400)`, + }, + }) +} diff --git a/sys/targets/common.go b/sys/targets/common.go index a29365ce3..b6827e76e 100644 --- a/sys/targets/common.go +++ b/sys/targets/common.go @@ -91,7 +91,7 @@ func (arch *UnixNeutralizer) Neutralize(c *prog.Call, fixStructure bool) error { } // Add MAP_FIXED flag, otherwise it produces non-deterministic results. c.Args[3].(*prog.ConstArg).Val |= arch.MAP_FIXED - case "mknod", "mknodat": + case "mknod", "mknodat", "compat_50_mknod": pos := 1 if c.Meta.CallName == "mknodat" { pos = 2 |
