| 1 | #include "pwf.h" |
| 2 | |
| 3 | #define LINE_LIM 256 |
| 4 | |
| 5 | struct spwd *getspnam(const char *name) |
| 6 | { |
| 7 | 	static struct spwd sp; |
| 8 | 	static char *line; |
| 9 | 	struct spwd *res; |
| 10 | 	int e; |
| 11 | 	int orig_errno = errno; |
| 12 | |
| 13 | 	if (!line) line = malloc(LINE_LIM); |
| 14 | 	if (!line) return 0; |
| 15 | 	e = getspnam_r(name, &sp, line, LINE_LIM, &res); |
| 16 | 	errno = e ? e : orig_errno; |
| 17 | 	return res; |
| 18 | } |