diff options
-rw-r--r-- | slock.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -103,14 +103,14 @@ gethash(void) | |||
103 | #if HAVE_SHADOW_H | 103 | #if HAVE_SHADOW_H |
104 | if (hash[0] == 'x' && hash[1] == '\0') { | 104 | if (hash[0] == 'x' && hash[1] == '\0') { |
105 | struct spwd *sp; | 105 | struct spwd *sp; |
106 | if (!(sp = getspnam(getenv("USER")))) | 106 | if (!(sp = getspnam(pw->pw_name))) |
107 | die("slock: getspnam: cannot retrieve shadow entry (make sure to suid or sgid slock)\n"); | 107 | die("slock: getspnam: cannot retrieve shadow entry (make sure to suid or sgid slock)\n"); |
108 | hash = sp->sp_pwdp; | 108 | hash = sp->sp_pwdp; |
109 | } | 109 | } |
110 | #else | 110 | #else |
111 | if (hash[0] == '*' && hash[1] == '\0') { | 111 | if (hash[0] == '*' && hash[1] == '\0') { |
112 | #ifdef __OpenBSD__ | 112 | #ifdef __OpenBSD__ |
113 | if (!(pw = getpwnam_shadow(getenv("USER")))) | 113 | if (!(pw = getpwuid_shadow(getuid()))) |
114 | die("slock: getpwnam_shadow: cannot retrieve shadow entry (make sure to suid or sgid slock)\n"); | 114 | die("slock: getpwnam_shadow: cannot retrieve shadow entry (make sure to suid or sgid slock)\n"); |
115 | hash = pw->pw_passwd; | 115 | hash = pw->pw_passwd; |
116 | #else | 116 | #else |