Skip to content

Commit f6e01e5

Browse files
committed
Call system() with an array of arguments
This avoids using a shell and can deal properly with spaces in paths.
1 parent 3e88185 commit f6e01e5

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

lib/fog/libvirt/models/compute/server.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ def generate_config_iso_in_dir(dir_path, user_data, &blk)
260260
File.write(user_data_path, user_data)
261261

262262
isofile = Tempfile.new(['init', '.iso']).path
263-
unless system("xorrisofs -output #{isofile} -volid cidata -joliet -rock #{user_data_path} #{meta_data_path}")
263+
unless system('xorrisofs', '-output', isofile, '-volid', 'cidata', '-joliet', '-rock', user_data_path, meta_data_path)
264264
raise Fog::Errors::Error.new("Couldn't generate cloud-init iso disk with xorrisofs.")
265265
end
266266
blk.call(isofile)

minitests/server/user_data_iso_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def test_contains_user_data_file
2626

2727
def test_iso_is_generated
2828
in_a_temp_dir do |d|
29-
@server.expects(:system).with(regexp_matches(/^xorrisofs/)).returns(true)
29+
@server.expects(:system).with { |command, *_args| command == 'xorrisofs' }.returns(true)
3030
@server.generate_config_iso_in_dir(d, @test_data) {|iso| }
3131
end
3232
end

0 commit comments

Comments
 (0)