if (len + 1 > buflen)
if ((size_t) (len + 1) > buflen)
internal_nis_getrpcent_r (struct rpcent *rpc, char *buffer, size_t buflen,			  intern_t *data){  char *domain;  char *result;  int len, parse_res;  char *outkey;  int keylen;  char *p;  if (yp_get_default_domain (&domain))    return NSS_STATUS_UNAVAIL;  /* Get the next entry until we found a correct one. */  do    {      enum nss_status retval;      if (data->new_start)        retval = yperr2nss (yp_first (domain, "rpc.bynumber",                                      &outkey, &keylen, &result, &len));      else        retval = yperr2nss ( yp_next (domain, "rpc.bynumber",				      data->oldkey, data->oldkeylen,				      &outkey, &keylen, &result, &len));      if (retval != NSS_STATUS_SUCCESS)        {          if (retval == NSS_STATUS_TRYAGAIN)            __set_errno (EAGAIN);          return retval;        }      if (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_files_parse_rpcent (p, rpc, buffer, buflen);      if (!parse_res && errno == ERANGE)	return NSS_STATUS_TRYAGAIN;      free (data->oldkey);      data->oldkey = outkey;      data->oldkeylen = keylen;      data->new_start = 0;    }  while (!parse_res);  return NSS_STATUS_SUCCESS;}