From 7df34f59bca2c74f1dfa5c198b94577cf918cbb2 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 28 Jan 2021 15:23:25 +0100 Subject: 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. --- syz-ci/syz-ci.go | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 { -- cgit mrf-deployment