diff --git a/backport-launch-config-use-AT_RANDOM-for-XML-hash-salt.patch b/backport-launch-config-use-AT_RANDOM-for-XML-hash-salt.patch index 1a20bb2..9111bbe 100644 --- a/backport-launch-config-use-AT_RANDOM-for-XML-hash-salt.patch +++ b/backport-launch-config-use-AT_RANDOM-for-XML-hash-salt.patch @@ -1,3 +1,11 @@ +From dd2a42a4b882fff63c4c68b8b6a724394270ed3f Mon Sep 17 00:00:00 2001 +From: David Rheinsberg +Date: Wed, 5 Jul 2023 09:54:12 +0200 +Subject: [PATCH] launch/config: use AT_RANDOM for XML hash salt + +Forward the entropy from AT_RANDOM to the hash-salt used by expat. Use +XML_SetHashSalt() for this (available and fixed since expat-2.1). + This fixes an issue where libexpat might read from `/dev/urandom` and thus block until the entropy pool is initialized. This hidden dependency is very hard to debug. Instead, we require the service @@ -43,7 +51,7 @@ index 85521bd..4a6a11e 100644 + * service manager to order processes accordingly. + */ + random = (void *)getauxval(AT_RANDOM); -+ assert(random); ++ c_assert(random); + memcpy(&parser->salt, random, sizeof(parser->salt)); } diff --git a/dbus-broker.spec b/dbus-broker.spec index 01b4729..3e5d2c7 100644 --- a/dbus-broker.spec +++ b/dbus-broker.spec @@ -1,6 +1,6 @@ Name: dbus-broker Version: 29 -Release: 9 +Release: 10 Summary: Linux D-Bus Message Broker License: Apache License 2.0 URL: https://github.com/bus1/dbus-broker @@ -95,6 +95,9 @@ fi %{_userunitdir}/dbus-broker.service %changelog +* Fri May 24 2024 huyubiao - 29-10 +- fix enable-dbus-broker-to-reexecute.patch and backport-launch-config-use-AT_RANDOM-for-XML-hash-salt.patch + * Sat Oct 7 2023 hongjinghao - 29-9 - Fix buffer leakage diff --git a/enable-dbus-broker-to-reexecute.patch b/enable-dbus-broker-to-reexecute.patch index 2fd4591..dde9e42 100644 --- a/enable-dbus-broker-to-reexecute.patch +++ b/enable-dbus-broker-to-reexecute.patch @@ -1922,7 +1922,7 @@ index 0000000..c027999 + r = log_commitf(&broker->log, "NameOwner string %s is invalid, skipping.\n", + nameowner_ship_str); + if (r < 0) -+ return error_fold(r); ++ return error_fold(r); + close(peeri->connection.socket.fd); + continue; + } @@ -1937,7 +1937,6 @@ index 0000000..c027999 + if (arg0 && !strncmp(arg0 + strlen("arg0"), "=':1", strlen("=':1"))) { + continue; + } -+ rule_str_list_cur = stpcpy(rule_str_list_cur, rule_str); + left_length -= strlen(rule_str); + /* Besides the next rule_str, we should also keep MATCH_RULE_LENGTH_MAX + * bytes for sasl_str. sasl_str usually doesn't need that much space, @@ -1946,6 +1945,7 @@ index 0000000..c027999 + skip_this_peer = true; + break; + } ++ rule_str_list_cur = stpcpy(rule_str_list_cur, rule_str); + } + + if (skip_this_peer) {