You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.2 KiB
34 lines
1.2 KiB
2 years ago
|
From 247d4f826ab189c4dfc4706aaa94782342655218 Mon Sep 17 00:00:00 2001
|
||
|
From: Lennart Poettering <lennart@poettering.net>
|
||
|
Date: Thu, 17 Jan 2019 21:06:30 +0100
|
||
|
Subject: [PATCH] sd-bus: initialize mutex after we allocated the wqueue
|
||
|
|
||
|
That way the mutex doesn't have to be destroyed when we exit early due
|
||
|
to OOM.
|
||
|
|
||
|
(cherry picked from commit 2fe9a10d7695c4c3a748969a0d1662c624e50e5e)
|
||
|
Related: CVE-2020-1712
|
||
|
---
|
||
|
src/libsystemd/sd-bus/sd-bus.c | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
|
||
|
index 01060d105c..e49d58137d 100644
|
||
|
--- a/src/libsystemd/sd-bus/sd-bus.c
|
||
|
+++ b/src/libsystemd/sd-bus/sd-bus.c
|
||
|
@@ -248,12 +248,12 @@ _public_ int sd_bus_new(sd_bus **ret) {
|
||
|
b->original_pid = getpid_cached();
|
||
|
b->n_groups = (size_t) -1;
|
||
|
|
||
|
- assert_se(pthread_mutex_init(&b->memfd_cache_mutex, NULL) == 0);
|
||
|
-
|
||
|
/* We guarantee that wqueue always has space for at least one entry */
|
||
|
if (!GREEDY_REALLOC(b->wqueue, b->wqueue_allocated, 1))
|
||
|
return -ENOMEM;
|
||
|
|
||
|
+ assert_se(pthread_mutex_init(&b->memfd_cache_mutex, NULL) == 0);
|
||
|
+
|
||
|
*ret = TAKE_PTR(b);
|
||
|
return 0;
|
||
|
}
|