Calling them unconditionally can result in memory corruption.
                else
                        die("slock: cannot retrieve password entry (make sure to suid or sgid slock)\n");
        }
-       endpwent();
        rval =  pw->pw_passwd;
 
 #if HAVE_SHADOW_H
                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