aboutsummaryrefslogtreecommitdiffstats
path: root/vm
diff options
context:
space:
mode:
authorbaishuai <baishuai.io@gmail.com>2017-05-20 14:56:26 +0800
committerbaishuai <baishuai.io@gmail.com>2017-05-21 12:47:51 +0800
commit118ec7aea52cd0bb61b3eb0c278e831977b8708d (patch)
treea7468a1a35ea17f96083fbbd357ecee9a78ec705 /vm
parentea8a55cd916442d4643bca92c2fe7d638f7e9746 (diff)
vm: validate if cfg.Bin is in $PATH for kvm,adb,qemu
Diffstat (limited to 'vm')
-rw-r--r--vm/adb/adb.go7
-rw-r--r--vm/kvm/kvm.go3
-rw-r--r--vm/qemu/qemu.go3
3 files changed, 12 insertions, 1 deletions
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")