aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-09-03 10:25:42 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-09-03 15:00:40 +0200
commit8d48456885907439825fa265e0c375da5fdf1ecd (patch)
tree2bb9a66aea6b009acbe785eecaf4fd3e09fc78ef
parent7ca47f80a88bd848649026e87f3a85316337d959 (diff)
downloadsyzkaller-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.go20
-rw-r--r--tools/syz-symbolize/symbolize.go12
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)