[arch-commits] Commit in dbus-broker/repos/testing-x86_64 (3 files)
Jan Steffens
heftig at gemini.archlinux.org
Wed May 11 12:05:40 UTC 2022
Date: Wednesday, May 11, 2022 @ 12:05:40
Author: heftig
Revision: 444996
archrelease: copy trunk to testing-x86_64
Added:
dbus-broker/repos/testing-x86_64/0001-util-user-keep-reference-to-user-in-each-usage-table.patch
(from rev 444995, dbus-broker/trunk/0001-util-user-keep-reference-to-user-in-each-usage-table.patch)
dbus-broker/repos/testing-x86_64/PKGBUILD
(from rev 444995, dbus-broker/trunk/PKGBUILD)
Deleted:
dbus-broker/repos/testing-x86_64/PKGBUILD
-----------------------------------------------------------------+
0001-util-user-keep-reference-to-user-in-each-usage-table.patch | 72 ++++++++
PKGBUILD | 81 +++++-----
2 files changed, 115 insertions(+), 38 deletions(-)
Copied: dbus-broker/repos/testing-x86_64/0001-util-user-keep-reference-to-user-in-each-usage-table.patch (from rev 444995, 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 (rev 0)
+++ 0001-util-user-keep-reference-to-user-in-each-usage-table.patch 2022-05-11 12:05:40 UTC (rev 444996)
@@ -0,0 +1,72 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: David Rheinsberg <david.rheinsberg at gmail.com>
+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 <david.rheinsberg at gmail.com>
+---
+ 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);
+ }
+
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2022-05-11 12:05:26 UTC (rev 444995)
+++ PKGBUILD 2022-05-11 12:05:40 UTC (rev 444996)
@@ -1,38 +0,0 @@
-# Maintainer: Jan Alexander Steffens (heftig) <heftig at archlinux.org>
-# Contributor: David Herrmann <dh.herrmann at gmail.com>
-
-pkgname=dbus-broker
-pkgver=30
-pkgrel=1
-pkgdesc="Linux D-Bus Message Broker"
-url="https://github.com/bus1/dbus-broker/wiki"
-arch=(x86_64)
-license=(Apache)
-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)
-sha256sums=('bf22ba6a13680ba93b99f0bccb54dde9f4f6bdff5f298dbc8cdb067a80f3827a')
-
-prepare() {
- cd $pkgname-$pkgver
-}
-
-build() {
- arch-meson $pkgname-$pkgver build \
- -D audit=true \
- -D docs=true \
- -D linux-4-17=true \
- -D system-console-users=gdm,sddm,lightdm,lxdm
- meson compile -C build
-}
-
-check() {
- meson test -C build --print-errorlogs
-}
-
-package() {
- meson install -C build --destdir "$pkgdir"
-}
-
-# vim:set sw=2 et:
Copied: dbus-broker/repos/testing-x86_64/PKGBUILD (from rev 444995, dbus-broker/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2022-05-11 12:05:40 UTC (rev 444996)
@@ -0,0 +1,43 @@
+# Maintainer: Jan Alexander Steffens (heftig) <heftig at archlinux.org>
+# Contributor: David Herrmann <dh.herrmann at gmail.com>
+
+pkgname=dbus-broker
+pkgver=30
+pkgrel=2
+pkgdesc="Linux D-Bus Message Broker"
+url="https://github.com/bus1/dbus-broker/wiki"
+arch=(x86_64)
+license=(Apache)
+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')
+
+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() {
+ arch-meson $pkgname-$pkgver build \
+ -D audit=true \
+ -D docs=true \
+ -D linux-4-17=true \
+ -D system-console-users=gdm,sddm,lightdm,lxdm
+ meson compile -C build
+}
+
+check() {
+ meson test -C build --print-errorlogs
+}
+
+package() {
+ meson install -C build --destdir "$pkgdir"
+}
+
+# vim:set sw=2 et:
More information about the arch-commits
mailing list