Issue #4288 has been updated by Jesse Wolfe.

Status changed from Re-opened to Rejected

Ah! This explains why Luke was surprised to hear that it was possible to 
execute arbitrary strings via exec.
"path" is intended to be the search path for the specified executable. Shell 
built-ins are not meaningfully in a directory - the fact that giving them a 
"path" bypassed the command validation was unintentional.

I've opened #4884 as a place to discuss adding the ability to execute arbitrary 
bash script as a supported feature.
----------------------------------------
Bug #4288: Error if exec command starts with shell built-in like "if"
http://projects.puppetlabs.com/issues/4288

Author: Alan Harder
Status: Rejected
Priority: Normal
Assignee: 
Category: exec
Target version: 
Affected version: 2.6.1
Keywords: 
Branch: 


<pre>exec { 'foo':
  command => 'if [ "abc" != "def" ]; then echo "this is a test"; fi',
  logoutput => true
}</pre>

With the above test case on 2.6.0rc4 (on Solaris 10 with ruby 1.8.7) I get:
<pre>err: /Stage[main]//Node[...]/Exec[foo]/returns: change from notrun to 0 
failed: Could not find executable 'no if in /usr/bin /usr/sbin'</pre>

A command like this worked in 0.25.5.. is the behavior change intentional, or 
is this a bug?

Side node: if I add whitespace at the front (command => ' if [ .....') then the 
error says *Could not find command ''*


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to