Date: Monday, May 16, 2022 @ 20:56:09 Author: heftig Revision: 445895
31-1 Modified: dbus-broker/trunk/PKGBUILD Deleted: dbus-broker/trunk/0001-util-user-keep-reference-to-user-in-each-usage-table.patch -----------------------------------------------------------------+ 0001-util-user-keep-reference-to-user-in-each-usage-table.patch | 72 ---------- PKGBUILD | 13 - 2 files changed, 4 insertions(+), 81 deletions(-) Deleted: 0001-util-user-keep-reference-to-user-in-each-usage-table.patch =================================================================== --- 0001-util-user-keep-reference-to-user-in-each-usage-table.patch 2022-05-16 20:54:18 UTC (rev 445894) +++ 0001-util-user-keep-reference-to-user-in-each-usage-table.patch 2022-05-16 20:56:09 UTC (rev 445895) @@ -1,72 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: David Rheinsberg <[email protected]> -Date: Wed, 11 May 2022 08:41:48 +0200 -Subject: [PATCH] util/user: keep reference to user in each usage table - -Keep a reference to an owning user in each usage table. We want to allow -callers to hold charges without holding on to any user references. - -Also fix the peer-deinitialization to be ordered correctly and free the -user references last (in particular, after the charges). This is not -strictly necessary, but now follows our coding style and would have -avoided possible failures. - -This fixes an assertion failure when disconnecting entire groups of -peers of the same user, due to the recent fix that actually made -peer-accounting do something. - -Reported-by: Torge Matthies -Reported-by: Mel34 -Signed-off-by: David Rheinsberg <[email protected]> ---- - src/bus/peer.c | 2 +- - src/util/user.c | 3 ++- - 2 files changed, 3 insertions(+), 2 deletions(-) - -diff --git a/src/bus/peer.c b/src/bus/peer.c -index 18bd1947ebc7..69ed0fde6933 100644 ---- a/src/bus/peer.c -+++ b/src/bus/peer.c -@@ -358,12 +358,12 @@ Peer *peer_free(Peer *peer) { - name_owner_deinit(&peer->owned_names); - policy_snapshot_free(peer->policy); - connection_deinit(&peer->connection); -- user_unref(peer->user); - user_charge_deinit(&peer->charges[2]); - user_charge_deinit(&peer->charges[1]); - user_charge_deinit(&peer->charges[0]); - free(peer->seclabel); - free(peer->gids); -+ user_unref(peer->user); - free(peer); - - close(fd); -diff --git a/src/util/user.c b/src/util/user.c -index 7856b768e91e..d0edb5e83210 100644 ---- a/src/util/user.c -+++ b/src/util/user.c -@@ -48,22 +48,23 @@ static int user_usage_new(UserUsage **usagep, User *user, uid_t uid) { - return error_origin(-ENOMEM); - - usage->n_refs = REF_INIT; -- usage->user = user; -+ usage->user = user_ref(user); - usage->uid = uid; - usage->user_node = (CRBNode)C_RBNODE_INIT(usage->user_node); - - *usagep = usage; - return 0; - } - - static void user_usage_free(_Atomic unsigned long *n_refs, void *userdata) { - UserUsage *usage = c_container_of(n_refs, UserUsage, n_refs); - size_t i; - - for (i = 0; i < usage->user->registry->n_slots; ++i) - c_assert(!usage->slots[i]); - - user_usage_unlink(usage); -+ user_unref(usage->user); - free(usage); - } - Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-05-16 20:54:18 UTC (rev 445894) +++ PKGBUILD 2022-05-16 20:56:09 UTC (rev 445895) @@ -2,8 +2,8 @@ # Contributor: David Herrmann <[email protected]> pkgname=dbus-broker -pkgver=30 -pkgrel=2 +pkgver=31 +pkgrel=1 pkgdesc="Linux D-Bus Message Broker" url="https://github.com/bus1/dbus-broker/wiki" arch=(x86_64) @@ -11,16 +11,11 @@ depends=(systemd-libs expat audit) makedepends=(meson systemd python-docutils) options=(debug) -source=(https://github.com/bus1/dbus-broker/releases/download/v$pkgver/$pkgname-$pkgver.tar.xz - 0001-util-user-keep-reference-to-user-in-each-usage-table.patch) -sha256sums=('bf22ba6a13680ba93b99f0bccb54dde9f4f6bdff5f298dbc8cdb067a80f3827a' - 'e7107b54a0051e3945cfde3a8cfc617abcef63b38dd0c5783ba805fedab9e2d1') +source=(https://github.com/bus1/dbus-broker/releases/download/v$pkgver/$pkgname-$pkgver.tar.xz) +sha256sums=('f229d7f1de8a3e344d54a4a30fbcb545387549e968009c06b87f7f1196c97496') prepare() { cd $pkgname-$pkgver - - # Fix asserts in system bus - patch -Np1 -i ../0001-util-user-keep-reference-to-user-in-each-usage-table.patch } build() {
