mirror of
https://github.com/reactos/syzkaller.git
synced 2025-02-07 12:26:40 +00:00
syz-fuzzer: setup host features during image testing
This commit is contained in:
parent
40957b8193
commit
d46b0931bd
@ -159,11 +159,16 @@ func main() {
|
||||
if err := manager.Call("Manager.Connect", a, r); err != nil {
|
||||
log.Fatalf("failed to connect to manager: %v ", err)
|
||||
}
|
||||
featureFlags, err := csource.ParseFeaturesFlags("none", "none", true)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if r.CheckResult == nil {
|
||||
checkArgs.gitRevision = r.GitRevision
|
||||
checkArgs.targetRevision = r.TargetRevision
|
||||
checkArgs.enabledCalls = r.EnabledCalls
|
||||
checkArgs.allSandboxes = r.AllSandboxes
|
||||
checkArgs.featureFlags = featureFlags
|
||||
r.CheckResult, err = checkMachine(checkArgs)
|
||||
if err != nil {
|
||||
if r.CheckResult == nil {
|
||||
@ -178,18 +183,15 @@ func main() {
|
||||
if r.CheckResult.Error != "" {
|
||||
log.Fatalf("%v", r.CheckResult.Error)
|
||||
}
|
||||
} else {
|
||||
if err = host.Setup(target, r.CheckResult.Features, featureFlags, config.Executor); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
log.Logf(0, "syscalls: %v", len(r.CheckResult.EnabledCalls[sandbox]))
|
||||
for _, feat := range r.CheckResult.Features {
|
||||
log.Logf(0, "%v: %v", feat.Name, feat.Reason)
|
||||
}
|
||||
featureFlags, err := csource.ParseFeaturesFlags("none", "none", true)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err = host.Setup(target, r.CheckResult.Features, featureFlags, config.Executor); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if r.CheckResult.Features[host.FeatureExtraCoverage].Enabled {
|
||||
config.Flags |= ipc.FlagExtraCover
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/google/syzkaller/pkg/csource"
|
||||
"github.com/google/syzkaller/pkg/host"
|
||||
"github.com/google/syzkaller/pkg/ipc"
|
||||
"github.com/google/syzkaller/pkg/log"
|
||||
@ -28,6 +29,7 @@ type checkArgs struct {
|
||||
allSandboxes bool
|
||||
ipcConfig *ipc.Config
|
||||
ipcExecOpts *ipc.ExecOpts
|
||||
featureFlags map[string]csource.Feature
|
||||
}
|
||||
|
||||
func testImage(hostAddr string, args *checkArgs) {
|
||||
@ -141,7 +143,7 @@ func checkMachine(args *checkArgs) (*rpctype.CheckArgs, error) {
|
||||
args.ipcConfig.Flags&ipc.FlagSandboxAndroidUntrustedApp != 0 {
|
||||
return nil, fmt.Errorf("sandbox=android_untrusted_app is not supported (%v)", feat.Reason)
|
||||
}
|
||||
if err := checkSimpleProgram(args); err != nil {
|
||||
if err := checkSimpleProgram(args, features); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res := &rpctype.CheckArgs{
|
||||
@ -220,8 +222,11 @@ func checkRevisions(args *checkArgs) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func checkSimpleProgram(args *checkArgs) error {
|
||||
func checkSimpleProgram(args *checkArgs, features *host.Features) error {
|
||||
log.Logf(0, "testing simple program...")
|
||||
if err := host.Setup(args.target, features, args.featureFlags, args.ipcConfig.Executor); err != nil {
|
||||
return fmt.Errorf("host setup failed: %v", err)
|
||||
}
|
||||
env, err := ipc.MakeEnv(args.ipcConfig, 0)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to create ipc env: %v", err)
|
||||
|
Loading…
x
Reference in New Issue
Block a user