diff options
Diffstat (limited to '')
| -rw-r--r-- | slock.c | 32 | 
1 files changed, 16 insertions, 16 deletions
| @@ -85,9 +85,9 @@ dontkillme(void)  #endif  static const char * -getpw(void) +gethash(void)  { -	const char *rval; +	const char *hash;  	struct passwd *pw;  	/* Check if the current user has a password entry */ @@ -98,35 +98,35 @@ getpw(void)  		else  			die("slock: cannot retrieve password entry\n");  	} -	rval = pw->pw_passwd; +	hash = pw->pw_passwd;  #if HAVE_SHADOW_H -	if (rval[0] == 'x' && rval[1] == '\0') { +	if (hash[0] == 'x' && hash[1] == '\0') {  		struct spwd *sp;  		if (!(sp = getspnam(getenv("USER"))))  			die("slock: getspnam: cannot retrieve shadow entry (make sure to suid or sgid slock)\n"); -		rval = sp->sp_pwdp; +		hash = sp->sp_pwdp;  	}  #else -	if (rval[0] == '*' && rval[1] == '\0') { +	if (hash[0] == '*' && hash[1] == '\0') {  #ifdef __OpenBSD__  		if (!(pw = getpwnam_shadow(getenv("USER"))))  			die("slock: getpwnam_shadow: cannot retrieve shadow entry (make sure to suid or sgid slock)\n"); -		rval = pw->pw_passwd; +		hash = pw->pw_passwd;  #else  		die("slock: getpwuid: cannot retrieve shadow entry (make sure to suid or sgid slock)\n");  #endif /* __OpenBSD__ */  	}  #endif /* HAVE_SHADOW_H */ -	return rval; +	return hash;  }  static void  readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens, -       const char *pws) +       const char *hash)  { -	char buf[32], passwd[256], *encrypted; +	char buf[32], passwd[256], *inputhash;  	int num, screen, running, failure;  	unsigned int len, color;  	KeySym ksym; @@ -161,10 +161,10 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,  			case XK_Return:  				passwd[len] = 0;  				errno = 0; -				if (!(encrypted = crypt(passwd, pws))) +				if (!(inputhash = crypt(passwd, hash)))  					fprintf(stderr, "slock: crypt: %s\n", strerror(errno));  				else -					running = !!strcmp(encrypted, pws); +					running = !!strcmp(inputhash, hash);  				if (running) {  					XBell(dpy, 100);  					failure = True; @@ -292,7 +292,7 @@ main(int argc, char **argv) {  	struct group *grp;  	uid_t duid;  	gid_t dgid; -	const char *pws; +	const char *hash;  	Display *dpy;  	int s, nlocks, nscreens; @@ -320,8 +320,8 @@ main(int argc, char **argv) {  	dontkillme();  #endif -	pws = getpw(); -	if (strlen(pws) < 2) +	hash = gethash(); +	if (strlen(hash) < 2)  		die("slock: failed to get user password hash.\n");  	if (!(dpy = XOpenDisplay(NULL))) @@ -370,7 +370,7 @@ main(int argc, char **argv) {  	}  	/* everything is now blank. Wait for the correct password */ -	readpw(dpy, &rr, locks, nscreens, pws); +	readpw(dpy, &rr, locks, nscreens, hash);  	return 0;  } | 
