xref: /aosp_15_r20/external/musl/src/passwd/getspnam.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include "pwf.h"
2*c9945492SAndroid Build Coastguard Worker 
3*c9945492SAndroid Build Coastguard Worker #define LINE_LIM 256
4*c9945492SAndroid Build Coastguard Worker 
getspnam(const char * name)5*c9945492SAndroid Build Coastguard Worker struct spwd *getspnam(const char *name)
6*c9945492SAndroid Build Coastguard Worker {
7*c9945492SAndroid Build Coastguard Worker 	static struct spwd sp;
8*c9945492SAndroid Build Coastguard Worker 	static char *line;
9*c9945492SAndroid Build Coastguard Worker 	struct spwd *res;
10*c9945492SAndroid Build Coastguard Worker 	int e;
11*c9945492SAndroid Build Coastguard Worker 	int orig_errno = errno;
12*c9945492SAndroid Build Coastguard Worker 
13*c9945492SAndroid Build Coastguard Worker 	if (!line) line = malloc(LINE_LIM);
14*c9945492SAndroid Build Coastguard Worker 	if (!line) return 0;
15*c9945492SAndroid Build Coastguard Worker 	e = getspnam_r(name, &sp, line, LINE_LIM, &res);
16*c9945492SAndroid Build Coastguard Worker 	errno = e ? e : orig_errno;
17*c9945492SAndroid Build Coastguard Worker 	return res;
18*c9945492SAndroid Build Coastguard Worker }
19