From: sin Date: Thu, 14 Nov 2013 11:24:08 +0000 (+0000) Subject: Set errno to 0 before getpwuid() and check it afterwards X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=6a5512835485ac501d983161ca15b311a95c5649;p=slock.git Set errno to 0 before getpwuid() and check it afterwards --- diff --git a/slock.c b/slock.c index 467937c..506231e 100644 --- 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;