aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/fuzzer
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2024-10-14 22:48:54 +0200
committerTaras Madan <tarasmadan@google.com>2024-10-25 12:08:02 +0000
commit668455c34bb42e5068264dae8ba909be95260c81 (patch)
treef19f43c20de6d1501903ee89c2a0fdc226ae7a61 /pkg/fuzzer
parent78ccf1e6b3d9e44604faf283b65faa3a5e0825f9 (diff)
syz-manager: move DefaultExecOpts() to pkg/
This will enable its reuse.
Diffstat (limited to 'pkg/fuzzer')
-rw-r--r--pkg/fuzzer/fuzzer.go32
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,
+ }
+}