// Copyright 2017 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 import ( "github.com/google/syzkaller/prog" "github.com/google/syzkaller/sys/targets" ) func InitTarget(target *prog.Target) { arch := &arch{ MAP_FIXED: target.ConstMap["MAP_FIXED"], } target.MakeMmap = targets.MakePosixMmap(target) target.SanitizeCall = arch.sanitizeCall } type arch struct { MAP_FIXED uint64 } func (arch *arch) sanitizeCall(c *prog.Call) { switch c.Meta.CallName { case "mmap": // Add MAP_FIXED flag, otherwise it produces non-deterministic results. c.Args[3].(*prog.ConstArg).Val |= arch.MAP_FIXED case "mknod", "mknodat": break case "exit": code := c.Args[0].(*prog.ConstArg) // These codes are reserved by executor. if code.Val%128 == 67 || code.Val%128 == 68 { code.Val = 1 } } }