diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2024-10-14 22:48:54 +0200 |
|---|---|---|
| committer | Taras Madan <tarasmadan@google.com> | 2024-10-25 12:08:02 +0000 |
| commit | 668455c34bb42e5068264dae8ba909be95260c81 (patch) | |
| tree | f19f43c20de6d1501903ee89c2a0fdc226ae7a61 /pkg/fuzzer | |
| parent | 78ccf1e6b3d9e44604faf283b65faa3a5e0825f9 (diff) | |
syz-manager: move DefaultExecOpts() to pkg/
This will enable its reuse.
Diffstat (limited to 'pkg/fuzzer')
| -rw-r--r-- | pkg/fuzzer/fuzzer.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/pkg/fuzzer/fuzzer.go b/pkg/fuzzer/fuzzer.go index 1f2fd90a8..ba6d93651 100644 --- a/pkg/fuzzer/fuzzer.go +++ b/pkg/fuzzer/fuzzer.go @@ -13,8 +13,10 @@ import ( "time" "github.com/google/syzkaller/pkg/corpus" + "github.com/google/syzkaller/pkg/csource" "github.com/google/syzkaller/pkg/flatrpc" "github.com/google/syzkaller/pkg/fuzzer/queue" + "github.com/google/syzkaller/pkg/mgrconfig" "github.com/google/syzkaller/pkg/signal" "github.com/google/syzkaller/pkg/stat" "github.com/google/syzkaller/prog" @@ -414,3 +416,33 @@ func setFlags(execFlags flatrpc.ExecFlag) flatrpc.ExecOpts { ExecFlags: execFlags, } } + +// TODO: This method belongs better to pkg/flatrpc, but we currently end up +// having a cyclic dependency error. +func DefaultExecOpts(cfg *mgrconfig.Config, features flatrpc.Feature, debug bool) flatrpc.ExecOpts { + env := csource.FeaturesToFlags(features, nil) + if debug { + env |= flatrpc.ExecEnvDebug + } + if cfg.Experimental.ResetAccState { + env |= flatrpc.ExecEnvResetState + } + if cfg.Cover { + env |= flatrpc.ExecEnvSignal + } + sandbox, err := flatrpc.SandboxToFlags(cfg.Sandbox) + if err != nil { + panic(fmt.Sprintf("failed to parse sandbox: %v", err)) + } + env |= sandbox + + exec := flatrpc.ExecFlagThreaded + if !cfg.RawCover { + exec |= flatrpc.ExecFlagDedupCover + } + return flatrpc.ExecOpts{ + EnvFlags: env, + ExecFlags: exec, + SandboxArg: cfg.SandboxArg, + } +} |
