Skip to content

Commit eae7cdd

Browse files
authored
Merge pull request #550 from traylenator/escape
Fix shell_escape of unless command
2 parents 245185b + df3cfda commit eae7cdd

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

manifests/config.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626
# For the stanard packages java::params needs these added.
2727
if $java::use_java_package_name != $java::default_package_name {
2828
$command_redhat = ['alternatives', '--install', '/usr/bin/java', 'java', $java::use_java_alternative_path, '20000']
29-
$unless_redhat = "alternatives --display java | grep -q ${java::use_java_alternative_path}"
29+
$unless_redhat = "alternatives --display java | grep -q ${shell_escape($java::use_java_alternative_path)}"
3030

3131
exec { 'create-java-alternatives':
3232
path => '/usr/bin:/usr/sbin:/bin:/sbin',
3333
command => $command_redhat,
34-
unless => shell_escape($unless_redhat),
34+
unless => $unless_redhat,
3535
before => Exec['update-java-alternatives'],
3636
}
3737
}

spec/classes/java_spec.rb

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,24 @@
3636
let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java/jre1.7.0_67/bin/java' } }
3737

3838
it { is_expected.to contain_package('java').with_name('jre') }
39-
it { is_expected.to contain_exec('create-java-alternatives').with_command(['alternatives', '--install', '/usr/bin/java', 'java', '/usr/java/jre1.7.0_67/bin/java', '20000']) }
39+
it {
40+
is_expected.to contain_exec('create-java-alternatives').with(
41+
{
42+
command: ['alternatives', '--install', '/usr/bin/java', 'java', '/usr/java/jre1.7.0_67/bin/java', '20000'],
43+
unless: 'alternatives --display java | grep -q /usr/java/jre1.7.0_67/bin/java',
44+
},
45+
)
46+
}
4047
it { is_expected.to contain_exec('update-java-alternatives').with_command(['alternatives', '--set', 'java', '/usr/java/jre1.7.0_67/bin/java']) }
4148
end
4249

50+
context 'when select Malicious JRE with alternatives for CentOS 6.3' do
51+
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '6.3' }, architecture: 'x86_64' } } }
52+
let(:params) { { 'package' => 'jre', 'java_alternative' => '/usr/bin/java', 'java_alternative_path' => '/usr/java ; rm -rf /etc' } }
53+
54+
it { is_expected.to contain_exec('create-java-alternatives').with_unless('alternatives --display java | grep -q /usr/java\\ \\;\\ rm\\ -rf\\ /etc') }
55+
end
56+
4357
context 'when select passed value for CentOS 5.3' do
4458
let(:facts) { { os: { family: 'RedHat', name: 'CentOS', release: { full: '5.3' }, architecture: 'x86_64' } } }
4559
let(:params) { { 'package' => 'jdk', 'java_home' => '/usr/local/lib/jre' } }

0 commit comments

Comments
 (0)