if (parse_res)
if (parse_res && !in_blacklist (result->pw_name, strlen (result->pw_name), ent))
getpwent_next_nis_netgr (const char *name, struct passwd *result, ent_t *ent,			 char *group, char *buffer, size_t buflen, int *errnop){  struct parser_data *data = (void *) buffer;  char *ypdomain, *host, *user, *domain, *outval, *p, *p2;  int status, outvallen;  size_t p2len;  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)    {      memset (&ent->netgrdata, 0, sizeof (struct __netgrent));      __internal_setnetgrent (group, &ent->netgrdata);      ent->first = FALSE;    }  while (1)    {      char *saved_cursor;      int parse_res;      saved_cursor = ent->netgrdata.cursor;      status = __internal_getnetgrent_r (&host, &user, &domain,					 &ent->netgrdata, buffer, buflen,					 errnop);      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;      /* If name != NULL, we are called from getpwnam.  */      if (name != NULL)	if (strcmp (user, name) != 0)	  continue;      if (yp_match (ypdomain, "passwd.byname", user,		    strlen (user), &outval, &outvallen)	  != YPERR_SUCCESS)	continue;      if (insert_passwd_adjunct (&outval, &outvallen, ypdomain, errnop)	  != NSS_STATUS_SUCCESS)	{	  free (outval);	  return NSS_STATUS_TRYAGAIN;	}      p2len = pwd_need_buflen (&ent->pwd);      if (p2len > buflen)	{	  free (outval);	  *errnop = ERANGE;	  return NSS_STATUS_TRYAGAIN;	}      p2 = buffer + (buflen - p2len);      buflen -= p2len;      if (buflen < ((size_t) outvallen + 1))	{	  free (outval);	  *errnop = ERANGE;	  return NSS_STATUS_TRYAGAIN;	}      p = strncpy (buffer, outval, buflen);      while (isspace (*p))	p++;      free (outval);      parse_res = _nss_files_parse_pwent (p, result, data, buflen, errnop);      if (parse_res == -1)	{	  ent->netgrdata.cursor = saved_cursor;	  return NSS_STATUS_TRYAGAIN;	}      if (parse_res)	{	  /* Store the User in the blacklist for the "+" at the end of	     /etc/passwd */	  blacklist_store_name (result->pw_name, ent);	  copy_pwd_changes (result, &ent->pwd, p2, p2len);	  break;	}    }  return NSS_STATUS_SUCCESS;}