p = strcpy (buffer, next->val);
p = strncpy (buffer, next->val, buflen);
internal_nis_getetherent_r (struct ether *eth, char *buffer, size_t buflen,			    int *errnop){  struct parser_data *data = (void *) buffer;  int parse_res;  if (start == NULL)    internal_nis_setetherent ();  /* Get the next entry until we found a correct one. */  do    {      char *p;      if (next == NULL)	return NSS_STATUS_NOTFOUND;      p = strcpy (buffer, next->val);      while (isspace (*p))        ++p;      parse_res = _nss_files_parse_etherent (p, eth, data, buflen, errnop);      if (parse_res == -1)	return NSS_STATUS_TRYAGAIN;      next = next->next;    }  while (!parse_res);  return NSS_STATUS_SUCCESS;}