diff options
author | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2014-09-05 14:17:53 +0000 |
---|---|---|
committer | Lars Wirzenius <lars.wirzenius@codethink.co.uk> | 2014-09-05 15:38:59 +0000 |
commit | 93d932f6a62e60357542e15f028551b7221c1720 (patch) | |
tree | 937d3d30b4865931adcfd4b814b7809827b5bfb2 | |
parent | 65ed235de623fd152dd2967b9ff2e1f60626c658 (diff) | |
download | definitions-93d932f6a62e60357542e15f028551b7221c1720.tar.gz |
Fix shell quoting for ssh remote command lines
Found by Richard Maw.
-rwxr-xr-x | kvm.write | 8 | ||||
-rwxr-xr-x | virtualbox-ssh.write | 9 |
2 files changed, 11 insertions, 6 deletions
@@ -94,11 +94,13 @@ class KvmPlusSshWriteExtension(morphlib.writeexts.WriteExtension): xfer_hole_path = morphlib.util.get_data_path('xfer-hole') recv_hole = morphlib.util.get_data('recv-hole') + ssh_remote_cmd = [ + 'sh', '-c', recv_hole, 'dummy-argv0', 'file', vm_path + ] + cliapp.runcmd( ['python', xfer_hole_path, raw_disk], - ['ssh', ssh_host, - 'sh', '-c', cliapp.shell_quote(recv_hole), - 'dummy-argv0', 'file', vm_path], + ['ssh', ssh_host] + map(cliapp.shell_quote, ssh_remote_cmd), stdout=None, stderr=None) def create_libvirt_guest(self, ssh_host, vm_name, vm_path, autostart): diff --git a/virtualbox-ssh.write b/virtualbox-ssh.write index 1aebe490..39ea8f86 100755 --- a/virtualbox-ssh.write +++ b/virtualbox-ssh.write @@ -107,11 +107,14 @@ class VirtualBoxPlusSshWriteExtension(morphlib.writeexts.WriteExtension): xfer_hole_path = morphlib.util.get_data_path('xfer-hole') recv_hole = morphlib.util.get_data('recv-hole') + ssh_remote_cmd = [ + 'sh', '-c', recv_hole, + 'dummy-argv0', 'vbox', vdi_path, str(st.st_size), + ] + cliapp.runcmd( ['python', xfer_hole_path, raw_disk], - ['ssh', ssh_host, - 'sh', '-c', cliapp.shell_quote(recv_hole), - 'dummy-argv0', 'vbox', vdi_path, str(st.st_size)], + ['ssh', ssh_host] + map(cliapp.shell_quote, ssh_remote_cmd), stdout=None, stderr=None) def virtualbox_version(self, ssh_host): |