aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/fileutils.rb4
-rw-r--r--lib/webrick/utils.rb3
2 files changed, 3 insertions, 4 deletions
diff --git a/lib/fileutils.rb b/lib/fileutils.rb
index 1b7bb11b18..0dfbf41d6c 100644
--- a/lib/fileutils.rb
+++ b/lib/fileutils.rb
@@ -1106,7 +1106,7 @@ module FileUtils
when /\A\d+\z/
user.to_i
else
- Etc.getpwnam(user).uid
+ Etc.getpwnam(user) ? Etc.getpwnam(user).uid : nil
end
end
private_module_function :fu_get_uid
@@ -1119,7 +1119,7 @@ module FileUtils
when /\A\d+\z/
group.to_i
else
- Etc.getgrnam(group).gid
+ Etc.getgrnam(group) ? Etc.getgrnam(group).gid : nil
end
end
private_module_function :fu_get_gid
diff --git a/lib/webrick/utils.rb b/lib/webrick/utils.rb
index a6b5cc6a9c..185b1723f3 100644
--- a/lib/webrick/utils.rb
+++ b/lib/webrick/utils.rb
@@ -41,8 +41,7 @@ module WEBrick
##
# Changes the process's uid and gid to the ones of +user+
def su(user)
- if defined?(Etc)
- pw = Etc.getpwnam(user)
+ if defined?(Etc) && (pw = Etc.getpwnam(user))
Process::initgroups(user, pw.gid)
Process::Sys::setgid(pw.gid)
Process::Sys::setuid(pw.uid)