aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-08-01 21:19:19 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-08-02 16:57:31 +0200
commita5892295bf7db49f94294ae111e35f3bb03091ca (patch)
tree498a1929182b7d4d95cca7f5ad702497006479a5
parent72ad4a3c4c3dde48c6556191346c4079a91dd208 (diff)
syz-manager/mgrconfig: refactor Complete
Split the very long function into 2. Update #538
-rw-r--r--syz-manager/mgrconfig/mgrconfig.go47
1 files changed, 27 insertions, 20 deletions
diff --git a/syz-manager/mgrconfig/mgrconfig.go b/syz-manager/mgrconfig/mgrconfig.go
index 54c856a85..344ec25ff 100644
--- a/syz-manager/mgrconfig/mgrconfig.go
+++ b/syz-manager/mgrconfig/mgrconfig.go
@@ -168,26 +168,8 @@ func Complete(cfg *Config) error {
if cfg.Syzkaller == "" {
return fmt.Errorf("config param syzkaller is empty")
}
- cfg.Syzkaller = osutil.Abs(cfg.Syzkaller)
- sysTarget := targets.Get(cfg.TargetOS, cfg.TargetArch)
- if sysTarget == nil {
- return fmt.Errorf("unsupported OS/arch: %v/%v", cfg.TargetOS, cfg.TargetArch)
- }
- exe := sysTarget.ExeExtension
- targetBin := func(name, arch string) string {
- return filepath.Join(cfg.Syzkaller, "bin", cfg.TargetOS+"_"+arch, name+exe)
- }
- cfg.SyzFuzzerBin = targetBin("syz-fuzzer", cfg.TargetVMArch)
- cfg.SyzExecprogBin = targetBin("syz-execprog", cfg.TargetVMArch)
- cfg.SyzExecutorBin = targetBin("syz-executor", cfg.TargetArch)
- if !osutil.IsExist(cfg.SyzFuzzerBin) {
- return fmt.Errorf("bad config syzkaller param: can't find %v", cfg.SyzFuzzerBin)
- }
- if !osutil.IsExist(cfg.SyzExecprogBin) {
- return fmt.Errorf("bad config syzkaller param: can't find %v", cfg.SyzExecprogBin)
- }
- if !osutil.IsExist(cfg.SyzExecutorBin) {
- return fmt.Errorf("bad config syzkaller param: can't find %v", cfg.SyzExecutorBin)
+ if err := completeBinaries(cfg); err != nil {
+ return err
}
if cfg.HTTP == "" {
return fmt.Errorf("config param http is empty")
@@ -236,6 +218,31 @@ func Complete(cfg *Config) error {
return nil
}
+func completeBinaries(cfg *Config) error {
+ sysTarget := targets.Get(cfg.TargetOS, cfg.TargetArch)
+ if sysTarget == nil {
+ return fmt.Errorf("unsupported OS/arch: %v/%v", cfg.TargetOS, cfg.TargetArch)
+ }
+ cfg.Syzkaller = osutil.Abs(cfg.Syzkaller)
+ exe := sysTarget.ExeExtension
+ targetBin := func(name, arch string) string {
+ return filepath.Join(cfg.Syzkaller, "bin", cfg.TargetOS+"_"+arch, name+exe)
+ }
+ cfg.SyzFuzzerBin = targetBin("syz-fuzzer", cfg.TargetVMArch)
+ cfg.SyzExecprogBin = targetBin("syz-execprog", cfg.TargetVMArch)
+ cfg.SyzExecutorBin = targetBin("syz-executor", cfg.TargetArch)
+ if !osutil.IsExist(cfg.SyzFuzzerBin) {
+ return fmt.Errorf("bad config syzkaller param: can't find %v", cfg.SyzFuzzerBin)
+ }
+ if !osutil.IsExist(cfg.SyzExecprogBin) {
+ return fmt.Errorf("bad config syzkaller param: can't find %v", cfg.SyzExecprogBin)
+ }
+ if !osutil.IsExist(cfg.SyzExecutorBin) {
+ return fmt.Errorf("bad config syzkaller param: can't find %v", cfg.SyzExecutorBin)
+ }
+ return nil
+}
+
func splitTarget(target string) (string, string, string, error) {
if target == "" {
return "", "", "", fmt.Errorf("target is empty")