slock
simple X display locker utility
git clone https://9o.is/git/slock.git
commit f405f8a3716a3dfa67b7ad86aa896fad63c1c65e parent ba3acfc0dcf1d0603bd9d6bdee1e319339b1a509 Author: sin <sin@2f30.org> Date: Thu, 14 Nov 2013 11:24:08 +0000 Set errno to 0 before getpwuid() and check it afterwards Diffstat:
| M | slock.c | | | 5 | ++++- |
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/slock.c b/slock.c @@ -65,8 +65,11 @@ getpw(void) { /* only run as root */ const char *rval; struct passwd *pw; + errno = 0; pw = getpwuid(getuid()); - if(!pw) + if (errno) + die("slock: getpwuid: %s\n", strerror(errno)); + else if (!pw) die("slock: cannot retrieve password entry (make sure to suid or sgid slock)\n"); endpwent(); rval = pw->pw_passwd;