forked from Bananymous/banan-os
				
			LibC: Add pw_passwd and pw_gecos to passwd structure
This information is available in /etc/passwd either way so why not expose it to the user. Practically all UNIX-likes have these either way
This commit is contained in:
		
							parent
							
								
									bbff9f89b0
								
							
						
					
					
						commit
						755d41ca4e
					
				|  | @ -14,11 +14,13 @@ __BEGIN_DECLS | ||||||
| 
 | 
 | ||||||
| struct passwd | struct passwd | ||||||
| { | { | ||||||
| 	char*	pw_name;	/* User's login name. */ | 	char* pw_name;   /* User's login name. */ | ||||||
| 	uid_t	pw_uid;		/* Numerical user ID. */ | 	char* pw_passwd; /* User's hashed password. */ | ||||||
| 	gid_t	pw_gid;		/* Numerical group ID. */ | 	uid_t pw_uid;    /* Numerical user ID. */ | ||||||
| 	char*	pw_dir;		/* Initial working directory. */ | 	gid_t pw_gid;    /* Numerical group ID. */ | ||||||
| 	char*	pw_shell;	/* Program to use as shell. */ | 	char* pw_gecos;  /* User's information. */ | ||||||
|  | 	char* pw_dir;    /* Initial working directory. */ | ||||||
|  | 	char* pw_shell;  /* Program to use as shell. */ | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| void			endpwent(void); | void			endpwent(void); | ||||||
|  |  | ||||||
|  | @ -71,12 +71,14 @@ struct passwd* getpwent(void) | ||||||
| 		switch (i) | 		switch (i) | ||||||
| 		{ | 		{ | ||||||
| 			case 0: | 			case 0: | ||||||
| 				s_pwent_struct.pw_name = (char*)malloc(field_len + 1); | 				s_pwent_struct.pw_name = strndup(ptr, field_len + 1); | ||||||
| 				if (!s_pwent_struct.pw_name) | 				if (!s_pwent_struct.pw_name) | ||||||
| 					return nullptr; | 					return nullptr; | ||||||
| 				strcpy(s_pwent_struct.pw_name, ptr); |  | ||||||
| 				break; | 				break; | ||||||
| 			case 1: | 			case 1: | ||||||
|  | 				s_pwent_struct.pw_passwd = strndup(ptr, field_len + 1); | ||||||
|  | 				if (!s_pwent_struct.pw_passwd) | ||||||
|  | 					return nullptr; | ||||||
| 				break; | 				break; | ||||||
| 			case 2: | 			case 2: | ||||||
| 				ASSERT(1 <= field_len && field_len <= 9); | 				ASSERT(1 <= field_len && field_len <= 9); | ||||||
|  | @ -91,18 +93,19 @@ struct passwd* getpwent(void) | ||||||
| 				s_pwent_struct.pw_gid = atoi(ptr); | 				s_pwent_struct.pw_gid = atoi(ptr); | ||||||
| 				break; | 				break; | ||||||
| 			case 4: | 			case 4: | ||||||
|  | 				s_pwent_struct.pw_gecos = strndup(ptr, field_len + 1); | ||||||
|  | 				if (!s_pwent_struct.pw_gecos) | ||||||
|  | 					return nullptr; | ||||||
| 				break; | 				break; | ||||||
| 			case 5: | 			case 5: | ||||||
| 				s_pwent_struct.pw_dir = (char*)malloc(field_len + 1); | 				s_pwent_struct.pw_dir = strndup(ptr, field_len + 1); | ||||||
| 				if (!s_pwent_struct.pw_dir) | 				if (!s_pwent_struct.pw_dir) | ||||||
| 					return nullptr; | 					return nullptr; | ||||||
| 				strcpy(s_pwent_struct.pw_dir, ptr); |  | ||||||
| 				break; | 				break; | ||||||
| 			case 6: | 			case 6: | ||||||
| 				s_pwent_struct.pw_shell = (char*)malloc(field_len + 1); | 				s_pwent_struct.pw_shell = strndup(ptr, field_len + 1); | ||||||
| 				if (!s_pwent_struct.pw_shell) | 				if (!s_pwent_struct.pw_shell) | ||||||
| 					return nullptr; | 					return nullptr; | ||||||
| 				strcpy(s_pwent_struct.pw_shell, ptr); |  | ||||||
| 				break; | 				break; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue