if (parse_res)
if (parse_res && !in_blacklist (result->pw_name, strlen (result->pw_name), ent))
getpwent_next_nisplus_netgr (const char *name, struct passwd *result,			     ent_t *ent, char *group, char *buffer,			     size_t buflen, int *errnop){  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)    {      char *saved_cursor;      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;      p2len = pwd_need_buflen (&ent->pwd);      if (p2len > buflen)	{	  *errnop = 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, errnop);      if (parse_res == -1)	{	  nis_freeresult (nisres);	  ent->netgrdata.cursor = saved_cursor;	  *errnop = ERANGE;	  return NSS_STATUS_TRYAGAIN;	}      nis_freeresult (nisres);      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;}