diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-06-17 12:34:44 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-06-17 14:41:15 +0200 |
| commit | a853b91c58c5403428499f5cdc661033ac7a91ce (patch) | |
| tree | 087ec3605a3379a74b1afab787c7a830673bb3c1 | |
| parent | 75c73461d8c3025e9974da2215000d849c43bbbc (diff) | |
syz-manager/mgrconfig: allow loading from memory
Allow loading manager config from memory.
Follow pkg/config naming convention,
i.e. LoadFile/LoadData instead of Parse.
| -rw-r--r-- | syz-manager/manager.go | 2 | ||||
| -rw-r--r-- | syz-manager/mgrconfig/mgrconfig.go | 20 | ||||
| -rw-r--r-- | tools/syz-crush/crush.go | 2 | ||||
| -rw-r--r-- | tools/syz-repro/repro.go | 2 |
4 files changed, 20 insertions, 6 deletions
diff --git a/syz-manager/manager.go b/syz-manager/manager.go index b8bd36d2c..542c189ff 100644 --- a/syz-manager/manager.go +++ b/syz-manager/manager.go @@ -106,7 +106,7 @@ type Crash struct { func main() { flag.Parse() EnableLogCaching(1000, 1<<20) - cfg, syscalls, err := mgrconfig.Parse(*flagConfig) + cfg, syscalls, err := mgrconfig.LoadFile(*flagConfig) if err != nil { Fatalf("%v", err) } diff --git a/syz-manager/mgrconfig/mgrconfig.go b/syz-manager/mgrconfig/mgrconfig.go index 19463d218..66c5caf90 100644 --- a/syz-manager/mgrconfig/mgrconfig.go +++ b/syz-manager/mgrconfig/mgrconfig.go @@ -57,7 +57,15 @@ type Config struct { ParsedIgnores []*regexp.Regexp `json:"-"` } -func Parse(filename string) (*Config, map[int]bool, error) { +func LoadData(data []byte) (*Config, map[int]bool, error) { + return load(data, "") +} + +func LoadFile(filename string) (*Config, map[int]bool, error) { + return load(nil, filename) +} + +func load(data []byte, filename string) (*Config, map[int]bool, error) { cfg := &Config{ Cover: true, Reproduce: true, @@ -66,8 +74,14 @@ func Parse(filename string) (*Config, map[int]bool, error) { Output: "stdout", Procs: 1, } - if err := config.LoadFile(filename, cfg); err != nil { - return nil, nil, err + if data != nil { + if err := config.LoadData(data, cfg); err != nil { + return nil, nil, err + } + } else { + if err := config.LoadFile(filename, cfg); err != nil { + return nil, nil, err + } } if !osutil.IsExist(filepath.Join(cfg.Syzkaller, "bin/syz-fuzzer")) { return nil, nil, fmt.Errorf("bad config syzkaller param: can't find bin/syz-fuzzer") diff --git a/tools/syz-crush/crush.go b/tools/syz-crush/crush.go index 17dc87944..6020ab4a2 100644 --- a/tools/syz-crush/crush.go +++ b/tools/syz-crush/crush.go @@ -29,7 +29,7 @@ var ( func main() { flag.Parse() - cfg, _, err := mgrconfig.Parse(*flagConfig) + cfg, _, err := mgrconfig.LoadFile(*flagConfig) if err != nil { Fatalf("%v", err) } diff --git a/tools/syz-repro/repro.go b/tools/syz-repro/repro.go index 317d42fc0..14da220a9 100644 --- a/tools/syz-repro/repro.go +++ b/tools/syz-repro/repro.go @@ -26,7 +26,7 @@ var ( func main() { os.Args = append(append([]string{}, os.Args[0], "-v=10"), os.Args[1:]...) flag.Parse() - cfg, _, err := mgrconfig.Parse(*flagConfig) + cfg, _, err := mgrconfig.LoadFile(*flagConfig) if err != nil { Fatalf("%v", err) } |
