getspnam.c raw

   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  }
  19