X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=slock.c;h=5051f04eb8a70a2fc7756fd29d6950850fb4236d;hb=44ce161c139f74cac80dd77aafdfadb49a85af2a;hp=aedee2e8eceac44bc60304424bbcece4b32f6269;hpb=9db14b10dd09336c6a8fe283f99108c9acc4667a;p=slock.git diff --git a/slock.c b/slock.c index aedee2e..5051f04 100644 --- a/slock.c +++ b/slock.c @@ -23,6 +23,8 @@ #include #endif +#include "config.h" + typedef struct { int screen; Window root, win; @@ -67,11 +69,12 @@ getpw(void) { /* only run as root */ errno = 0; pw = getpwuid(getuid()); - 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(); + if (!pw) { + if (errno) + die("slock: getpwuid: %s\n", strerror(errno)); + else + die("slock: cannot retrieve password entry (make sure to suid or sgid slock)\n"); + } rval = pw->pw_passwd; #if HAVE_SHADOW_H @@ -80,7 +83,6 @@ getpw(void) { /* only run as root */ sp = getspnam(getenv("USER")); if(!sp) die("slock: cannot retrieve shadow entry (make sure to suid or sgid slock)\n"); - endspent(); rval = sp->sp_pwdp; } #endif