[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALCETrVgKMVnBuzE+bCXaUPRrqhVxwv4AXmJrUJSYws5rZxhJw@mail.gmail.com>
Date: Thu, 24 Jul 2014 16:27:36 -0700
From: Andy Lutomirski <luto@...capital.net>
To: "Theodore Ts'o" <tytso@....edu>,
Henrique de Moraes Holschuh <hmh@....eng.br>,
Andy Lutomirski <luto@...capital.net>,
Linux Kernel Developers List <linux-kernel@...r.kernel.org>,
Linux API <linux-api@...r.kernel.org>,
linux-crypto@...r.kernel.org
Subject: Re: [PATCH -v5] random: introduce getrandom(2) system call
On Thu, Jul 24, 2014 at 4:24 PM, Theodore Ts'o <tytso@....edu> wrote:
> On Thu, Jul 24, 2014 at 05:30:19PM -0300, Henrique de Moraes Holschuh wrote:
>> > I wouldn't add the error to the man page until we actually modify the
>> > kernel to add such a restriction.
>>
>> By then, it might be too late. It would be really sad to find ourselves
>> forced to return ENOSYS to getrandom(GRND_RANDOM) when we actually wanted to
>> return EPERM/EACCES.
>
> I wouldn't worry about. The reality is that anyone using GRND_RANDOM
> has to be checking for error codes anyway, and if they do something
> stupid because the system call returns EPERM/EACCESS when they weren't
> expecting it, again, they are much more likely to be making many other
> fatal mistakes anyway.
>
> In general, all system calls can return errno's other than the ones
> documented in the man page. This is certainly true for open(2), and
> read(2) if you are using a network file system such as NFS. Someone
> who assumes that the only errors that they have to handle is the list
> in the man page, and assumes that this list is an exhaustive listing
> of all possible errors, is going to be in a *world* of hurt.
>
> I don't think it's necessary to add a sentence that other errors can
> be returned in the future, and users much check for other errors, but
> if you really think people are that stupid that we need to say
> something which is true for every single system call in Linux, we can
> do that....
I think that people might do:
try getrandom(GRND_RANDOM)
fall back to /dev/random
fall back to something intensely stupid
We want them to at least attempt the fallback from GRND_RANDOM to !GRND_RANDOM.
--Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists