buffer += __alignof__ (char *) - 1; buffer -= ((buffer - (char *) 0) % __alignof__ (char *)); result->alias_members = (char **) buffer;   cp = result->alias_name; for (cnt = 0; cnt < result->alias_members_len; ++cnt) { cp = strchr (cp, '\0') + 1; result->alias_members[cnt] = cp; }  status = (result->alias_members_len == 0 ? NSS_STATUS_RETURN : NSS_STATUS_SUCCESS); }
status = (result->alias_members_len == 0 ? NSS_STATUS_RETURN : NSS_STATUS_SUCCESS);
lookup (DBT *key, struct aliasent *result, char *buffer,	size_t buflen, int *errnop){  enum nss_status status;  DBT value;  /* Open the database.  */  status = internal_setent (keep_db);  if (status != NSS_STATUS_SUCCESS)    {      *errnop = errno;      return status;    }  value.flags = 0;  if (db->get (db, NULL, key, &value, 0) == 0)    {      const char *src = value.data;      result->alias_members_len = 0;      /* We now have to fill the BUFFER with all the information. */      if (buflen < key->size + 1)	{	no_more_room:	  *errnop = ERANGE;	  return NSS_STATUS_TRYAGAIN;	}      if (status == NSS_STATUS_SUCCESS)	{	  char *cp;	  size_t cnt;	  buffer = stpncpy (buffer, key->data, key->size) + 1;	  buflen -= key->size + 1;	  while (*src != '\0')	    {	      const char *end, *upto;	      while (isspace (*src))		++src;	      end = strchr (src, ',');	      if (end == NULL)		end = strchr (src, '\0');	      for (upto = end; upto > src && isspace (upto[-1]); --upto);	      if (upto != src)		{		  if ((upto - src) + __alignof__ (char *) > buflen)		    goto no_more_room;		  buffer = stpncpy (buffer, src, upto - src) + 1;		  buflen -= (upto - src) + __alignof (char *);		  ++result->alias_members_len;		}	      src = end + (*end != '\0');	    }	  /* Now prepare the return.  Provide string pointers for the	     currently selected aliases.  */	  /* Adjust the pointer so it is aligned for storing pointers.  */	  buffer += __alignof__ (char *) - 1;	  buffer -= ((buffer - (char *) 0) % __alignof__ (char *));	  result->alias_members = (char **) buffer;	  /* Compute addresses of alias entry strings.  */	  cp = result->alias_name;	  for (cnt = 0; cnt < result->alias_members_len; ++cnt)	    {	      cp = strchr (cp, '\0') + 1;	      result->alias_members[cnt] = cp;	    }	  status = (result->alias_members_len == 0		    ? NSS_STATUS_RETURN : NSS_STATUS_SUCCESS);	}    }  else    status = NSS_STATUS_NOTFOUND;  if (! keep_db)    internal_endent ();  return status;}