Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Mar 2018 12:33:25 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Conrad Meyer <cem@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r331279 - in head: include lib/libc/gen lib/libc/sys lib/libc/tests/gen sys/compat/freebsd32 sys/conf sys/kern sys/sys tests/sys/kern usr.bin/truss
Message-ID:  <20180321103325.GJ76926@kib.kiev.ua>
In-Reply-To: <201803210115.w2L1Fjt9084698@repo.freebsd.org>
References:  <201803210115.w2L1Fjt9084698@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Mar 21, 2018 at 01:15:45AM +0000, Conrad Meyer wrote:
> +int
> +getentropy(void *buf, size_t buflen)
> +{
> +	ssize_t rd;
> +
> +	if (buflen > 256) {
> +		errno = EIO;
> +		return (-1);
> +	}
> +
> +	while (buflen > 0) {
> +		rd = getrandom(buf, buflen, 0);
> +		if (rd == -1) {
> +			if (errno == EINTR)
> +				continue;
> +			else if (errno == ENOSYS)
> +				abort();
Libraries must not abort the application.
Esp. libc.

> +			else
> +				return (-1);
> +		}
> +
> +		/* This cannot happen. */
> +		if (rd == 0)
> +			abort();
> +
> +		buf = (char *)buf + rd;
> +		buflen -= rd;
> +	}
> +
> +	return (0);
> +}

> @@ -627,6 +628,8 @@ FBSDprivate_1.0 {
>  	__sys_getppid;
>  	_getpriority;
>  	__sys_getpriority;
> +	_getrandom;
> +	__sys_getrandom;
>  	_getresgid;
>  	__sys_getresgid;
>  	_getresuid;

Is there any use planned for _getrandom and for __sys_ ?  If not,
we do not add private symbols for newer syscalls in recent times.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180321103325.GJ76926>