diff --git a/src/service/libc.cr b/src/service/libc.cr index 1accad3..46b61ae 100644 --- a/src/service/libc.cr +++ b/src/service/libc.cr @@ -25,14 +25,11 @@ module System passwd = pointer.value - # FIXME: Probably should get some errno magic right now. - if 0 != LibC.setuid passwd.pw_uid - raise Exception.new "setuid failed" - end + r = LibC.setgid passwd.pw_gid + raise Errno.new "setgid" if r != 0 - if 0 != LibC.setgid passwd.pw_gid - raise Exception.new "setuid failed" - end + r = LibC.setuid passwd.pw_uid + raise Errno.new "setuid" if r != 0 passwd end