aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2021-01-28 15:23:25 +0100
committerDmitry Vyukov <dvyukov@google.com>2021-01-28 16:02:10 +0100
commit7df34f59bca2c74f1dfa5c198b94577cf918cbb2 (patch)
tree18c55c16f8e019a480d6379315f6935affdf2374
parenteefc07f2541beeb1bcd50b1d75f40b5f04af2b06 (diff)
syz-ci: allow to use relative paths in config
Relative paths generally work except for few cases where we e.g. start a subprocess in another dir and pass a path from config to it (e.g. kernel build make). Explicitly turn all paths into absolute to support relative paths everywhere.
-rw-r--r--syz-ci/syz-ci.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/syz-ci/syz-ci.go b/syz-ci/syz-ci.go
index c93667f08..d979892ec 100644
--- a/syz-ci/syz-ci.go
+++ b/syz-ci/syz-ci.go
@@ -258,6 +258,10 @@ func loadConfig(filename string) (*Config, error) {
if cfg.HTTP == "" {
return nil, fmt.Errorf("param 'http' is empty")
}
+ cfg.Goroot = osutil.Abs(cfg.Goroot)
+ cfg.SyzkallerDescriptions = osutil.Abs(cfg.SyzkallerDescriptions)
+ cfg.BisectBinDir = osutil.Abs(cfg.BisectBinDir)
+ cfg.Ccache = osutil.Abs(cfg.Ccache)
// Manager name must not contain dots because it is used as GCE image name prefix.
managerNameRe := regexp.MustCompile("^[a-zA-Z0-9-_]{3,64}$")
var managers []*ManagerConfig
@@ -293,6 +297,13 @@ func loadConfig(filename string) (*Config, error) {
managercfg.HTTP = fmt.Sprintf(":%v", cfg.ManagerPort)
cfg.ManagerPort++
}
+ mgr.Compiler = osutil.Abs(mgr.Compiler)
+ mgr.Ccache = osutil.Abs(mgr.Ccache)
+ mgr.Userspace = osutil.Abs(mgr.Userspace)
+ mgr.KernelConfig = osutil.Abs(mgr.KernelConfig)
+ mgr.KernelBaselineConfig = osutil.Abs(mgr.KernelBaselineConfig)
+ mgr.KernelCmdline = osutil.Abs(mgr.KernelCmdline)
+ mgr.KernelSysctl = osutil.Abs(mgr.KernelSysctl)
}
cfg.Managers = managers
if len(cfg.Managers) == 0 {