From a5892295bf7db49f94294ae111e35f3bb03091ca Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 1 Aug 2018 21:19:19 +0200 Subject: syz-manager/mgrconfig: refactor Complete Split the very long function into 2. Update #538 --- syz-manager/mgrconfig/mgrconfig.go | 47 ++++++++++++++++++++++---------------- 1 file 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") -- cgit mrf-deployment