From 906a1f544815bee7944e0a0749af9d63c365ee8d Mon Sep 17 00:00:00 2001 From: Sami Farin Date: Fri, 22 Jan 2021 19:24:52 +0100 Subject: [PATCH] Make getrandom() failure fatal --- src/pipewire/impl-core.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/pipewire/impl-core.c b/src/pipewire/impl-core.c index 1efc8b1ea..1800fe4eb 100644 --- a/src/pipewire/impl-core.c +++ b/src/pipewire/impl-core.c @@ -405,15 +405,17 @@ struct pw_impl_core *pw_context_create_core(struct pw_context *context, this->info.user_name = pw_get_user_name(); this->info.host_name = pw_get_host_name(); this->info.version = pw_get_library_version(); - while (getrandom(&this->info.cookie, sizeof(this->info.cookie), 0) != - sizeof(this->info.cookie)) { - if (errno == EINTR) - continue; - pw_log_warn(NAME" %p: cookie getrandom failed: %m", this); - this->info.cookie = rand(); - break; + do { + res = getrandom(&this->info.cookie, + sizeof(this->info.cookie), 0); + } while ((res == -1) && (errno == EINTR)); + if (res == -1) { + res = -errno; + goto error_exit; + } else if (res != sizeof(this->info.cookie)) { + res = -ENODATA; + goto error_exit; } - this->info.name = name; spa_hook_list_init(&this->listener_list);