Introduction
Introduction Statistics Contact Development Disclaimer Help
Stop using $USER for shadow entries - slock - simple X display locker utility
git clone git://git.suckless.org/slock
Log
Files
Refs
README
LICENSE
---
commit dc2e8e839e4d72f5fec36c9a0474e6062a7a8f51
parent 9a617db716641da8489e2062e04098220954bffe
Author: FRIGN <[email protected]>
Date: Sun, 11 Sep 2016 23:17:53 +0200
Stop using $USER for shadow entries
This was extremely bad practice, effectively making the program behave
different depending on which architecture you are running it on.
OpenBSD offers getpwuid_shadow, but there is no getspuid for getspnam,
so we resort to using the pw_name entry in the struct passwd we filled
earlier.
This prevents slock from crashing when $USER is empty (easy to do). If
you want to run slock as a different user, don't use
$ USER="tom" slock
but doas or sudo which were designed for this purpose.
Diffstat:
M slock.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git 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 (ma…
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 en…
hash = pw->pw_passwd;
#else
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.