Date: Wed, 21 Mar 2018 17:23:35 +0200 From: Konstantin Belousov <kostikbel@gmail.com> To: Conrad Meyer <cem@freebsd.org> Cc: src-committers <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: <20180321152335.GL76926@kib.kiev.ua> In-Reply-To: <CAG6CVpW3tPVyh6D3FXpAc9DPqG9u_KnHBiZOFmg1zZsHmDb8jA@mail.gmail.com> References: <201803210115.w2L1Fjt9084698@repo.freebsd.org> <20180321103325.GJ76926@kib.kiev.ua> <CAG6CVpW3tPVyh6D3FXpAc9DPqG9u_KnHBiZOFmg1zZsHmDb8jA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180321152335.GL76926>