while (getpwnam_r (key, &resultbuf, buffer, buflen, &pwd) != 0
while (__getpwnam_r (key, &resultbuf, buffer, buflen, &pwd) != 0
addpwbyname (struct database *db, int fd, request_header *req,	     void *key, uid_t c_uid){  /* Search for the entry matching the key.  Please note that we don't     look again in the table whether the dataset is now available.  We     simply insert it.  It does not matter if it is in there twice.  The     pruning function only will look at the timestamp.  */  int buflen = 256;  char *buffer = alloca (buflen);  struct passwd resultbuf;  struct passwd *pwd;  uid_t oldeuid;  if (debug_level > 0)    dbg_log (_("Haven't found \"%s\" in password cache!"), key);  if (secure[pwddb])    {      oldeuid = geteuid ();      seteuid (c_uid);    }  while (getpwnam_r (key, &resultbuf, buffer, buflen, &pwd) != 0	 && errno == ERANGE)    {      errno = 0;      buflen += 256;      buffer = alloca (buflen);    }  if (secure[pwddb])    seteuid (c_uid);  cache_addpw (db, fd, req, key, pwd, c_uid);}