From: sin Date: Fri, 7 Nov 2014 13:20:13 +0000 (+0000) Subject: end{pw,sp}ent() can only be called after get{pw,sp}ent() X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=4339b507af01421e2deab63ca9ac3c5bdae5f4cc;p=slock.git end{pw,sp}ent() can only be called after get{pw,sp}ent() Calling them unconditionally can result in memory corruption. --- diff --git a/slock.c b/slock.c index 399386b..d281965 100644 --- a/slock.c +++ b/slock.c @@ -73,7 +73,6 @@ getpw(void) { /* only run as root */ else die("slock: cannot retrieve password entry (make sure to suid or sgid slock)\n"); } - endpwent(); rval = pw->pw_passwd; #if HAVE_SHADOW_H @@ -82,7 +81,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