My little adventure of analyzing lib usage has already rooted out
a big "P" Policy violator -- logname was using getlogin(3), which uses utmp under the hood. We don't need no stinkin' utmp (and if we are using tinylogin, it is unlikely to be useful trying). -Erik
This commit is contained in:
		
							
								
								
									
										2
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								TODO
									
									
									
									
									
								
							| @@ -44,6 +44,8 @@ It would be a very nice thing to reduce this list to an absolute minimum, and | ||||
| then create a microLibc to provide these functions.  There is no good reason | ||||
| for GNU libc to be so big.  I'm sure it can be a lot better. | ||||
|  | ||||
| (BTW, this is more informative if BB_FEATURE_NFSMOUNT is turned off...) | ||||
|  | ||||
|  | ||||
| ----------------------- | ||||
|  | ||||
|   | ||||
| @@ -29,16 +29,16 @@ static const char logname_usage[] = "logname\n\n" | ||||
|  | ||||
| extern int logname_main(int argc, char **argv) | ||||
| { | ||||
| 	char *cp; | ||||
| 	char *user = xmalloc(9); | ||||
|  | ||||
| 	if (argc > 1) | ||||
| 		usage(logname_usage); | ||||
|  | ||||
| 	cp = getlogin(); | ||||
| 	if (cp) { | ||||
| 		puts(cp); | ||||
| 	my_getpwuid(user, geteuid()); | ||||
| 	if (user) { | ||||
| 		puts(user); | ||||
| 		exit(TRUE); | ||||
| 	} | ||||
| 	fprintf(stderr, "%s: no login name\n", argv[0]); | ||||
| 	fprintf(stderr, "no login name\n"); | ||||
| 	exit(FALSE); | ||||
| } | ||||
|   | ||||
							
								
								
									
										10
									
								
								logname.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								logname.c
									
									
									
									
									
								
							| @@ -29,16 +29,16 @@ static const char logname_usage[] = "logname\n\n" | ||||
|  | ||||
| extern int logname_main(int argc, char **argv) | ||||
| { | ||||
| 	char *cp; | ||||
| 	char *user = xmalloc(9); | ||||
|  | ||||
| 	if (argc > 1) | ||||
| 		usage(logname_usage); | ||||
|  | ||||
| 	cp = getlogin(); | ||||
| 	if (cp) { | ||||
| 		puts(cp); | ||||
| 	my_getpwuid(user, geteuid()); | ||||
| 	if (user) { | ||||
| 		puts(user); | ||||
| 		exit(TRUE); | ||||
| 	} | ||||
| 	fprintf(stderr, "%s: no login name\n", argv[0]); | ||||
| 	fprintf(stderr, "no login name\n"); | ||||
| 	exit(FALSE); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user