aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2017-06-17 12:34:44 +0200
committerDmitry Vyukov <dvyukov@google.com>2017-06-17 14:41:15 +0200
commita853b91c58c5403428499f5cdc661033ac7a91ce (patch)
tree087ec3605a3379a74b1afab787c7a830673bb3c1
parent75c73461d8c3025e9974da2215000d849c43bbbc (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.go2
-rw-r--r--syz-manager/mgrconfig/mgrconfig.go20
-rw-r--r--tools/syz-crush/crush.go2
-rw-r--r--tools/syz-repro/repro.go2
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)
}