]> git.armaanb.net Git - slock.git/blobdiff - slock.c
remove confusing DPMS comment
[slock.git] / slock.c
diff --git a/slock.c b/slock.c
index f79917468021ca414a174a50e71372b4f59deda9..c81f5dd8e9cd66b216d5a8fb66e5ddcc7f46b3f7 100644 (file)
--- a/slock.c
+++ b/slock.c
@@ -103,14 +103,14 @@ gethash(void)
 #if HAVE_SHADOW_H
        if (hash[0] == 'x' && hash[1] == '\0') {
                struct spwd *sp;
-               if (!(sp = getspnam(getenv("USER"))))
+               if (!(sp = getspnam(pw->pw_name)))
                        die("slock: getspnam: cannot retrieve shadow entry (make sure to suid or sgid slock)\n");
                hash = sp->sp_pwdp;
        }
 #else
        if (hash[0] == '*' && hash[1] == '\0') {
 #ifdef __OpenBSD__
-               if (!(pw = getpwnam_shadow(getenv("USER"))))
+               if (!(pw = getpwuid_shadow(getuid())))
                        die("slock: getpwnam_shadow: cannot retrieve shadow entry (make sure to suid or sgid slock)\n");
                hash = pw->pw_passwd;
 #else
@@ -137,10 +137,6 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
        running = 1;
        failure = 0;
 
-       /* As "slock" stands for "Simple X display locker", the DPMS settings
-        * had been removed and you can set it with "xset" or some other
-        * utility. This way the user can easily set a customized DPMS
-        * timeout. */
        while (running && !XNextEvent(dpy, &ev)) {
                if (ev.type == KeyPress) {
                        explicit_bzero(&buf, sizeof(buf));
@@ -321,8 +317,9 @@ main(int argc, char **argv) {
 #endif
 
        hash = gethash();
-       if (strlen(hash) < 2)
-               die("slock: failed to get user password hash.\n");
+       errno = 0;
+       if (!crypt("", hash))
+               die("slock: crypt: %s\n", strerror(errno));
 
        if (!(dpy = XOpenDisplay(NULL)))
                die("slock: cannot open display\n");