richardphibel / rpms / systemd

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