diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-08-01 21:19:19 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-08-02 16:57:31 +0200 |
| commit | a5892295bf7db49f94294ae111e35f3bb03091ca (patch) | |
| tree | 498a1929182b7d4d95cca7f5ad702497006479a5 | |
| parent | 72ad4a3c4c3dde48c6556191346c4079a91dd208 (diff) | |
syz-manager/mgrconfig: refactor Complete
Split the very long function into 2.
Update #538
| -rw-r--r-- | syz-manager/mgrconfig/mgrconfig.go | 47 |
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") |
