[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 04/14] crypto: Use O_CLOEXEC in qcrypto_rando
From: |
Daniel P . Berrangé |
Subject: |
Re: [Qemu-devel] [PATCH v2 04/14] crypto: Use O_CLOEXEC in qcrypto_random_init |
Date: |
Thu, 14 Mar 2019 15:52:43 +0000 |
User-agent: |
Mutt/1.11.3 (2019-02-01) |
On Thu, Mar 14, 2019 at 10:43:11AM -0500, Eric Blake wrote:
> On 3/14/19 10:34 AM, Daniel P. Berrangé wrote:
> > On Wed, Mar 13, 2019 at 09:55:16PM -0700, Richard Henderson wrote:
> >> Avoids leaking the /dev/urandom fd into any child processes.
> >>
> >> Cc: Daniel P. Berrangé <address@hidden>
> >> Signed-off-by: Richard Henderson <address@hidden>
> >> ---
> >> crypto/random-platform.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/crypto/random-platform.c b/crypto/random-platform.c
> >> index 0866f216dc..8bfce99a65 100644
> >> --- a/crypto/random-platform.c
> >> +++ b/crypto/random-platform.c
> >> @@ -42,9 +42,9 @@ int qcrypto_random_init(Error **errp)
> >> #else
> >> /* TBD perhaps also add support for BSD getentropy / Linux
> >> * getrandom syscalls directly */
> >> - fd = open("/dev/urandom", O_RDONLY);
> >> + fd = open("/dev/urandom", O_RDONLY | O_CLOEXEC);
> >> if (fd == -1 && errno == ENOENT) {
> >> - fd = open("/dev/random", O_RDONLY);
> >> + fd = open("/dev/random", O_RDONLY | O_CLOEXEC);
> >> }
> >>
> >> if (fd < 0) {
> >
> > Reviewed-by: Daniel P. Berrangé <address@hidden>
>
> Are we at the point where we can declare open(O_CLOEXEC)
> mandatory-supported on all systems we compile on, or do we need to use
> qemu_open() to get the semantics we need (with proper fallback to
> non-atomic fcntl() on older platforms)?
It has been available on Linux for all our targetted distros. I can see
it in man pages for FreeBSD, NetBSD & OpenBSD too, and for macOS 10.6
(~2009).
I think windows is the main one which lacks it, but this #ifdef of the
code isn't built on Windows.
IOW, I think we're safe.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
[Qemu-devel] [PATCH v2 05/14] crypto: Use getrandom for qcrypto_random_bytes, Richard Henderson, 2019/03/14
[Qemu-devel] [PATCH v2 10/14] linux-user: Call qcrypto_init if not using -seed, Richard Henderson, 2019/03/14
[Qemu-devel] [PATCH v2 09/14] util: Use qcrypto_random_bytes for qemu_getrandom, Richard Henderson, 2019/03/14
[Qemu-devel] [PATCH v2 07/14] ui/vnc: Use qcrypto_random_bytes for make_challenge, Richard Henderson, 2019/03/14
[Qemu-devel] [PATCH v2 08/14] util: Add qemu_getrandom and support functions, Richard Henderson, 2019/03/14