diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2019-09-03 10:25:42 +0200 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2019-09-03 15:00:40 +0200 |
commit | 8d48456885907439825fa265e0c375da5fdf1ecd (patch) | |
tree | 2bb9a66aea6b009acbe785eecaf4fd3e09fc78ef | |
parent | 7ca47f80a88bd848649026e87f3a85316337d959 (diff) | |
download | syzkaller-8d48456885907439825fa265e0c375da5fdf1ecd.tar.gz |
tools/syz-symbolize: fix kernel dir calculation
syz-symbolize did not use the common mgrconfig logic
to calculate kernel dirs. Thus KernelBuildSrc ended up empty,
+dirs were not extended to absolute paths.
Use the common mgrconfig logic to calculate kernel dirs.
-rw-r--r-- | pkg/mgrconfig/load.go | 20 | ||||
-rw-r--r-- | tools/syz-symbolize/symbolize.go | 12 |
2 files changed, 19 insertions, 13 deletions
diff --git a/pkg/mgrconfig/load.go b/pkg/mgrconfig/load.go index a4cbc8914..f02f3c59c 100644 --- a/pkg/mgrconfig/load.go +++ b/pkg/mgrconfig/load.go @@ -105,15 +105,8 @@ func Complete(cfg *Config) error { if err := checkSSHParams(cfg); err != nil { return err } + cfg.CompleteKernelDirs() - cfg.KernelObj = osutil.Abs(cfg.KernelObj) - if cfg.KernelSrc == "" { - cfg.KernelSrc = cfg.KernelObj // assume in-tree build by default - } - cfg.KernelSrc = osutil.Abs(cfg.KernelSrc) - if cfg.KernelBuildSrc == "" { - cfg.KernelBuildSrc = cfg.KernelSrc - } if cfg.HubClient != "" && (cfg.Name == "" || cfg.HubAddr == "" || cfg.HubKey == "") { return fmt.Errorf("hub_client is set, but name/hub_addr/hub_key is empty") } @@ -126,6 +119,17 @@ func Complete(cfg *Config) error { return nil } +func (cfg *Config) CompleteKernelDirs() { + cfg.KernelObj = osutil.Abs(cfg.KernelObj) + if cfg.KernelSrc == "" { + cfg.KernelSrc = cfg.KernelObj // assume in-tree build by default + } + cfg.KernelSrc = osutil.Abs(cfg.KernelSrc) + if cfg.KernelBuildSrc == "" { + cfg.KernelBuildSrc = cfg.KernelSrc + } +} + func checkSSHParams(cfg *Config) error { if cfg.SSHUser == "" { return fmt.Errorf("bad config syzkaller param: ssh user is empty") diff --git a/tools/syz-symbolize/symbolize.go b/tools/syz-symbolize/symbolize.go index 2dc814505..5f88e68cd 100644 --- a/tools/syz-symbolize/symbolize.go +++ b/tools/syz-symbolize/symbolize.go @@ -17,8 +17,8 @@ import ( var ( flagOS = flag.String("os", runtime.GOOS, "target os") flagArch = flag.String("arch", runtime.GOARCH, "target arch") - flagKernelSrc = flag.String("kernel_src", ".", "path to kernel sources") flagKernelObj = flag.String("kernel_obj", ".", "path to kernel build/obj dir") + flagKernelSrc = flag.String("kernel_src", "", "path to kernel sources (defaults to kernel_obj)") ) func main() { @@ -29,11 +29,13 @@ func main() { os.Exit(1) } cfg := &mgrconfig.Config{ - TargetOS: *flagOS, - TargetArch: *flagArch, - KernelObj: *flagKernelObj, - KernelSrc: *flagKernelSrc, + TargetOS: *flagOS, + TargetArch: *flagArch, + TargetVMArch: *flagArch, + KernelObj: *flagKernelObj, + KernelSrc: *flagKernelSrc, } + cfg.CompleteKernelDirs() reporter, err := report.NewReporter(cfg) if err != nil { fmt.Fprintf(os.Stderr, "failed to create reporter: %v\n", err) |