| 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 |
| |
| |
| @@ -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; |
| } |