Issue #1571 has been reported by pirzyk.
----------------------------------------
Bug #1571: Puppet::Util::binary returns incorrect results
http://reductivelabs.com/redmine/issues/show/1571
Author: pirzyk
Status: Unreviewed
Priority: Normal
Assigned to:
Category:
Target version:
Complexity: Unknown
Affected version: 0.24.5
Keywords:
When calling the binary method, looking for 'rpm' command with the following
path:
/home/pirzyk/etc:/home/pirzyk/bin:/usr/local/sbin:/usr/local/etc:/usr/local/bin:/usr/local/games:/usr/share/games:/usr/sbin:/usr/etc:/usr/bin:/usr/games://sbin://etc://bin
binary returns '/etc/rpm' /etc/rpm is a directory on most RPM based Linux
systems.
Following is to possible patches, one replaces the each loop with a call to
which
--- util.rb.orig 2008-09-10 15:09:14.000000000 -0400
+++ util.rb 2008-09-10 15:40:51.000000000 -0400
@@ -220,19 +220,14 @@
def binary(bin)
if bin =~ /^\//
- if FileTest.exists? bin
+ if FileTest.file? bin and FileTest.executable? bin
return bin
else
return nil
end
else
- # LAK:NOTE See http://snurl.com/21zf8 [groups_google_com]
- x = ENV['PATH'].split(":").each do |dir|
- if FileTest.exists? File.join(dir, bin)
- return File.join(dir, bin)
- end
- end
- return nil
+ x = %x{which #{bin} 2>/dev/null}.chomp
+ return x
end
end
module_function :binary
The second is more in keeping with the existing code, by calling
FileTest.executeable? and FileTest.file? instead of FileTest.exists?
--- util.rb.orig 2008-09-10 15:09:14.000000000 -0400
+++ util.rb.new 2008-09-10 15:38:27.000000000 -0400
@@ -220,7 +220,7 @@
def binary(bin)
if bin =~ /^\//
- if FileTest.exists? bin
+ if FileTest.file? bin and FileTest.executable? bin
return bin
else
return nil
@@ -228,7 +228,7 @@
else
# LAK:NOTE See http://snurl.com/21zf8 [groups_google_com]
x = ENV['PATH'].split(":").each do |dir|
- if FileTest.exists? File.join(dir, bin)
+ if FileTest.file? File.join(dir, bin) and FileTest.executable?
File.join(dir, bin)
return File.join(dir, bin)
end
end
----------------------------------------
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://reductivelabs.com/redmine/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
-~----------~----~----~----~------~----~------~--~---