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 15:23:47 UTC 2018


On Wed, Mar 21, 2018 at 08:03:16AM -0700, Conrad Meyer wrote:
> 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.

Return the error to caller, as all, well most, correct library functions
do.


More information about the svn-src-head mailing list