free (outkey);
internal_nis_getaliasent_r (struct aliasent *alias, char *buffer,			    size_t buflen){  char *domain;  char *result;  int len;  char *outkey;  int keylen;  char *p;  int parse_res;  if (yp_get_default_domain (&domain))    return NSS_STATUS_UNAVAIL;  alias->alias_local = 0;  /* Get the next entry until we found a correct one. */  do    {      enum nss_status retval;      if (new_start)        retval = yperr2nss (yp_first (domain, "mail.aliases",				      &outkey, &keylen, &result, &len));      else        retval = yperr2nss ( yp_next (domain, "mail.aliases", oldkey,				      oldkeylen, &outkey, &keylen,				      &result, &len));      if (retval != NSS_STATUS_SUCCESS)	{	  if (retval == NSS_STATUS_TRYAGAIN)            __set_errno (EAGAIN);          return retval;        }      if ((size_t) (len + 1) > buflen)        {	  free (result);          __set_errno (ERANGE);          return NSS_STATUS_TRYAGAIN;        }      p = strncpy (buffer, result, len);      buffer[len] = '\0';      while (isspace (*p))        ++p;      free (result);      parse_res = _nss_nis_parse_aliasent (outkey, p, alias, buffer, buflen);      if (parse_res == -1)	{	  __set_errno (ERANGE);	  return NSS_STATUS_TRYAGAIN;	}      free (oldkey);      oldkey = outkey;      oldkeylen = keylen;      new_start = 0;    }  while (!parse_res);  return NSS_STATUS_SUCCESS;}