about summary refs log tree commit diff
path: root/pkgs/build-support/vm
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2014-02-16 01:42:10 +0100
committeraszlig <aszlig@redmoonstudios.org>2014-02-26 04:51:57 +0100
commitaa65a7057f3abba32726ed17853090bcb86992f9 (patch)
tree9029804d58d42bad67deab27105cf4e5ae569cfc /pkgs/build-support/vm
parentcfa859d79222d034a9fe493192150b80faae4ee8 (diff)
downloadnixlib-aa65a7057f3abba32726ed17853090bcb86992f9.tar
nixlib-aa65a7057f3abba32726ed17853090bcb86992f9.tar.gz
nixlib-aa65a7057f3abba32726ed17853090bcb86992f9.tar.bz2
nixlib-aa65a7057f3abba32726ed17853090bcb86992f9.tar.lz
nixlib-aa65a7057f3abba32726ed17853090bcb86992f9.tar.xz
nixlib-aa65a7057f3abba32726ed17853090bcb86992f9.tar.zst
nixlib-aa65a7057f3abba32726ed17853090bcb86992f9.zip
vm/windows: Properly escape shell command.
Security-wise it's not a big issue because we're still sandboxed, but I
really don't want to write something like \\\\\\\\192.168.0.2\\\\share
in order to set up network shares.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs/build-support/vm')
-rw-r--r--pkgs/build-support/vm/windows/controller/default.nix4
1 files changed, 3 insertions, 1 deletions
diff --git a/pkgs/build-support/vm/windows/controller/default.nix b/pkgs/build-support/vm/windows/controller/default.nix
index 22451e0e3947..6abf87f82c87 100644
--- a/pkgs/build-support/vm/windows/controller/default.nix
+++ b/pkgs/build-support/vm/windows/controller/default.nix
@@ -57,6 +57,8 @@ let
     };
   };
 
+  shellEscape = x: "'${lib.replaceChars ["'"] [("'\\'" + "'")] x}'";
+
   initScript = writeScript "init.sh" (''
     #!${stdenv.shell}
     ${coreutils}/bin/mkdir -p /etc/samba /etc/samba/private /var/lib/samba
@@ -104,7 +106,7 @@ let
       -o StrictHostKeyChecking=no \
       -i /ssh.key \
       -l Administrator \
-      192.168.0.1 -- "${command}"
+      192.168.0.1 -- ${shellEscape command}
 
     ${busybox}/sbin/poweroff -f
   ''));