Add /etc/passwd support
Fix slock to work with /etc/passwd without /etc/shadow. while we're at it, remove an occurence of trailing whitespace.
This commit is contained in:
		
							parent
							
								
									6a55128354
								
							
						
					
					
						commit
						9db14b10dd
					
				
							
								
								
									
										4
									
								
								slock.c
								
								
								
								
							
							
						
						
									
										4
									
								
								slock.c
								
								
								
								
							| 
						 | 
					@ -75,7 +75,7 @@ getpw(void) { /* only run as root */
 | 
				
			||||||
	rval =  pw->pw_passwd;
 | 
						rval =  pw->pw_passwd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if HAVE_SHADOW_H
 | 
					#if HAVE_SHADOW_H
 | 
				
			||||||
	if (strlen(rval) >= 1) { /* kludge, assumes pw placeholder entry has len >= 1 */
 | 
						if (rval[0] == 'x' && rval[1] == '\0') {
 | 
				
			||||||
		struct spwd *sp;
 | 
							struct spwd *sp;
 | 
				
			||||||
		sp = getspnam(getenv("USER"));
 | 
							sp = getspnam(getenv("USER"));
 | 
				
			||||||
		if(!sp)
 | 
							if(!sp)
 | 
				
			||||||
| 
						 | 
					@ -147,7 +147,7 @@ readpw(Display *dpy, const char *pws)
 | 
				
			||||||
					--len;
 | 
										--len;
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			default:
 | 
								default:
 | 
				
			||||||
				if(num && !iscntrl((int) buf[0]) && (len + num < sizeof passwd)) { 
 | 
									if(num && !iscntrl((int) buf[0]) && (len + num < sizeof passwd)) {
 | 
				
			||||||
					memcpy(passwd + len, buf, num);
 | 
										memcpy(passwd + len, buf, num);
 | 
				
			||||||
					len += num;
 | 
										len += num;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue