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

Conrad Meyer cem at freebsd.org
Wed Mar 21 15:03:25 UTC 2018


On Wed, Mar 21, 2018 at 3:33 AM, Konstantin Belousov
<kostikbel at gmail.com> wrote:
> 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.

What do you propose instead?  while (1); ?  I don't see that as
obviously better.

>> ...
>> @@ -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.

Nope, just following the pattern.  They can be removed if they are not needed.

Best,
Conrad


More information about the svn-src-head mailing list