parse_res = _nss_nisplus_parse_pwent (ent->result, result, buffer, buflen);
if ((parse_res = _nss_nisplus_parse_pwent (ent->result, result, buffer, buflen)) == -1) { nis_freeresult (ent->result); ent->result = saved_res; ent->first = saved_first; __set_errno (ERANGE); return NSS_STATUS_TRYAGAIN; } else { if (!saved_first) nis_freeresult (saved_res); }
getpwent_next_nisplus (struct passwd *result, ent_t *ent, char *buffer,		       size_t buflen){  int parse_res;  size_t p2len;  char *p2;  p2len = pwd_need_buflen (&ent->pwd);  if (p2len > buflen)    {      __set_errno (ERANGE);      return NSS_STATUS_TRYAGAIN;    }  p2 = buffer + (buflen - p2len);  buflen -= p2len;  do    {      if (ent->first)	{	  ent->result = nis_first_entry(pwdtable);          if (niserr2nss (ent->result->status) != NSS_STATUS_SUCCESS)	    {	      ent->nis = 0;	      give_pwd_free (&ent->pwd);	      return niserr2nss (ent->result->status);	    }	  ent->first = FALSE;	}      else	{	  nis_result *res;	  res = nis_next_entry(pwdtable, &ent->result->cookie);	  nis_freeresult (ent->result);	  ent->result = res;	  if (niserr2nss (ent->result->status) != NSS_STATUS_SUCCESS)	    {	      ent->nis = 0;	      give_pwd_free (&ent->pwd);	      return niserr2nss (ent->result->status);	    }	}      parse_res = _nss_nisplus_parse_pwent (ent->result, result, buffer,					    buflen);      if (parse_res &&	  in_blacklist (result->pw_name, strlen (result->pw_name), ent))	parse_res = 0; /* if result->pw_name in blacklist,search next entry */    }  while (!parse_res);  copy_pwd_changes (result, &ent->pwd, p2, p2len);  return NSS_STATUS_SUCCESS;}