Exemplo n.º 1
0
int
getlogin_r (char *name, size_t name_len)
{
  size_t len;

  if (__getlogin_cache == NULL)
    {
      if (INLINE_SYSCALL (getlogin, 2, __getlogin_cache_room, MAXLOGNAME) < 0)
	return -1;
      /* The system call should return a NULL terminated name.  */
      if (__memchr (__getlogin_cache_room, '\0', MAXLOGNAME) == NULL)
	abort ();
      __getlogin_cache = __getlogin_cache_room;
    }

  len = strlen (__getlogin_cache);
  if (__builtin_expect (len < name_len, 1))
    {
      memcpy (name, __getlogin_cache, len + 1);
      return 0;
    }
  else
    {
      __set_errno (ERANGE);
      return -1;
    }
}
Exemplo n.º 2
0
void *memchr(const void * ptr, int val, size_t len)
{
	const unsigned char * m = ptr;
	void * result = NULL;

	if(ptr == NULL || (signed)len < 1)
	{
		errno = EFAULT;
	}
	else
	{
		result = __memchr(m,(unsigned char)(val & 255),len);
	}

	return(result);
}