parse_res = _nss_nisplus_parse_pwent (nisres, result, buffer, buflen);
if ((parse_res = _nss_nisplus_parse_pwent (nisres, result, buffer, buflen)) == -1) { nis_freeresult (nisres); ent->netgrdata.cursor = saved_cursor; return NSS_STATUS_TRYAGAIN; }
getpwent_next_nisplus_netgr (struct passwd *result, ent_t *ent, char *group,			     char *buffer, size_t buflen){  char *ypdomain, *host, *user, *domain, *p2;  int status, parse_res;  size_t p2len;  nis_result *nisres;  /* Maybe we should use domainname here ? We need the current     domainname for the domain field in netgroups */  if (yp_get_default_domain (&ypdomain) != YPERR_SUCCESS)    {      ent->netgroup = 0;      ent->first = 0;      give_pwd_free (&ent->pwd);      return NSS_STATUS_UNAVAIL;    }  if (ent->first == TRUE)    {      bzero (&ent->netgrdata, sizeof (struct __netgrent));      __internal_setnetgrent (group, &ent->netgrdata);      ent->first = FALSE;    }  while (1)    {      status = __internal_getnetgrent_r (&host, &user, &domain,					 &ent->netgrdata, buffer, buflen);      if (status != 1)	{	  __internal_endnetgrent (&ent->netgrdata);	  ent->netgroup = 0;	  give_pwd_free (&ent->pwd);	  return NSS_STATUS_RETURN;	}      if (user == NULL || user[0] == '-')	continue;      if (domain != NULL && strcmp (ypdomain, domain) != 0)	continue;      p2len = pwd_need_buflen (&ent->pwd);      if (p2len > buflen)	{	  __set_errno (ERANGE);	  return NSS_STATUS_TRYAGAIN;	}      p2 = buffer + (buflen - p2len);      buflen -= p2len;      {	char buf[strlen (user) + 30 + pwdtablelen];	sprintf(buf, "[name=%s],%s", user, pwdtable);	nisres = nis_list(buf, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);      }      if (niserr2nss (nisres->status) != NSS_STATUS_SUCCESS)	{	  nis_freeresult (nisres);	  continue;	}      parse_res = _nss_nisplus_parse_pwent (nisres, result, buffer, buflen);      nis_freeresult (nisres);      if (parse_res)	{	  copy_pwd_changes (result, &ent->pwd, p2, p2len);	  break;	}    }  return NSS_STATUS_SUCCESS;}