Xinqi Bao's Git
projects
/
slock.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
5a5c581
)
applied Michaels patch
author
[email protected]
<unknown>
Tue, 24 Jan 2012 21:10:02 +0000
(22:10 +0100)
committer
[email protected]
<unknown>
Tue, 24 Jan 2012 21:10:02 +0000
(22:10 +0100)
slock.c
diff
|
blob
|
history
diff --git
a/slock.c
b/slock.c
index
2dce109
..
d150009
100644
(file)
--- a/
slock.c
+++ b/
slock.c
@@
-50,9
+50,9
@@
getpw(void) { /* only run as root */
const char *rval;
struct passwd *pw;
const char *rval;
struct passwd *pw;
- if(geteuid() != 0)
- die("cannot retrieve password entry (make sure to suid slock)");
pw = getpwuid(getuid());
pw = getpwuid(getuid());
+ if(!pw)
+ die("cannot retrieve password entry (make sure to suid or sgid slock)");
endpwent();
rval = pw->pw_passwd;
endpwent();
rval = pw->pw_passwd;
@@
-60,6
+60,8
@@
getpw(void) { /* only run as root */
{
struct spwd *sp;
sp = getspnam(getenv("USER"));
{
struct spwd *sp;
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;
}
endspent();
rval = sp->sp_pwdp;
}