From 118ec7aea52cd0bb61b3eb0c278e831977b8708d Mon Sep 17 00:00:00 2001 From: baishuai Date: Sat, 20 May 2017 14:56:26 +0800 Subject: vm: validate if cfg.Bin is in $PATH for kvm,adb,qemu --- vm/adb/adb.go | 7 ++++++- vm/kvm/kvm.go | 3 +++ vm/qemu/qemu.go | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) (limited to 'vm') diff --git a/vm/adb/adb.go b/vm/adb/adb.go index 79ef2b0cd..6e01869b8 100644 --- a/vm/adb/adb.go +++ b/vm/adb/adb.go @@ -53,7 +53,9 @@ func ctor(cfg *vm.Config) (vm.Instance, error) { return nil, err } // Remove temp files from previous runs. - inst.adb("shell", "rm -Rf /data/syzkaller*") + if _, err := inst.adb("shell", "rm -Rf /data/syzkaller*"); err != nil { + return nil, err + } closeInst = nil return inst, nil } @@ -62,6 +64,9 @@ func validateConfig(cfg *vm.Config) error { if cfg.Bin == "" { cfg.Bin = "adb" } + if _, err := exec.LookPath(cfg.Bin); err != nil { + return err + } if !regexp.MustCompile("[0-9A-F]+").MatchString(cfg.Device) { return fmt.Errorf("invalid adb device id '%v'", cfg.Device) } diff --git a/vm/kvm/kvm.go b/vm/kvm/kvm.go index 38cfba5e5..e13b68e11 100644 --- a/vm/kvm/kvm.go +++ b/vm/kvm/kvm.go @@ -151,6 +151,9 @@ func validateConfig(cfg *vm.Config) error { if cfg.Bin == "" { cfg.Bin = "lkvm" } + if _, err := exec.LookPath(cfg.Bin); err != nil { + return err + } if cfg.Image != "" { return fmt.Errorf("lkvm does not support custom images") } diff --git a/vm/qemu/qemu.go b/vm/qemu/qemu.go index d9c37c822..e0c5f6ad0 100644 --- a/vm/qemu/qemu.go +++ b/vm/qemu/qemu.go @@ -95,6 +95,9 @@ func validateConfig(cfg *vm.Config) error { if cfg.Bin == "" { cfg.Bin = "qemu-system-x86_64" } + if _, err := exec.LookPath(cfg.Bin); err != nil { + return err + } if cfg.Image == "9p" { if cfg.Kernel == "" { return fmt.Errorf("9p image requires kernel") -- cgit mrf-deployment