end{pw,sp}ent() can only be called after get{pw,sp}ent()
Calling them unconditionally can result in memory corruption.
1 files changed, 0 insertions(+), 2 deletions(-) M slock.c
M slock.c => slock.c +0 -2
@@ 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