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
Konstantin Belousov
kostikbel at gmail.com
Wed Mar 21 10:33:36 UTC 2018
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.
More information about the svn-src-all
mailing list