Hello community, here is the log from the commit of package dbus-broker for openSUSE:Factory checked in at 2020-12-10 15:59:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dbus-broker (Old) and /work/SRC/openSUSE:Factory/.dbus-broker.new.2328 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dbus-broker" Thu Dec 10 15:59:20 2020 rev:9 rq:854544 version:25 Changes: -------- --- /work/SRC/openSUSE:Factory/dbus-broker/dbus-broker.changes 2020-09-06 00:03:32.971288306 +0200 +++ /work/SRC/openSUSE:Factory/.dbus-broker.new.2328/dbus-broker.changes 2020-12-10 15:59:21.642923515 +0100 @@ -1,0 +2,9 @@ +Thu Dec 3 11:34:56 UTC 2020 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 25 + * Fix an assertion failure when disconnecting monitors with active + unique-name matches. + * Fix the selinux error-handling to no longer mark all errors as + auditable by default. + +------------------------------------------------------------------- Old: ---- dbus-broker-24.tar.xz New: ---- dbus-broker-25.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dbus-broker.spec ++++++ --- /var/tmp/diff_new_pack.waXh6o/_old 2020-12-10 15:59:22.342924174 +0100 +++ /var/tmp/diff_new_pack.waXh6o/_new 2020-12-10 15:59:22.342924174 +0100 @@ -17,7 +17,7 @@ Name: dbus-broker -Version: 24 +Version: 25 Release: 0 Summary: XDG-conforming message bus implementation License: Apache-2.0 ++++++ dbus-broker-24.tar.xz -> dbus-broker-25.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/NEWS.md new/dbus-broker-25/NEWS.md --- old/dbus-broker-24/NEWS.md 2020-09-04 09:08:58.000000000 +0200 +++ new/dbus-broker-25/NEWS.md 2020-12-03 11:53:50.000000000 +0100 @@ -1,5 +1,19 @@ # dbus-broker - Linux D-Bus Message Broker +## CHANGES WITH 25: + + * Fix an assertion failure when disconnecting monitors with active + unique-name matches. + + * Fix the selinux error-handling to no longer mark all errors as + auditable by default. + + * Minor improvements to the test-suite for better debugging. + + Contributions from: Chris PeBenito, David Rheinsberg + + - Tübingen, 2020-12-03 + ## CHANGES WITH 24: * Improve log messages for invalid configuration files, as well as diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/meson.build new/dbus-broker-25/meson.build --- old/dbus-broker-24/meson.build 2020-09-04 09:08:58.000000000 +0200 +++ new/dbus-broker-25/meson.build 2020-12-03 11:53:50.000000000 +0100 @@ -5,7 +5,7 @@ project( 'dbus-broker', 'c', - version: '24', + version: '25', license: 'Apache', default_options: [ 'c_std=c11', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/src/bus/match.c new/dbus-broker-25/src/bus/match.c --- old/dbus-broker-24/src/bus/match.c 2020-09-04 09:08:58.000000000 +0200 +++ new/dbus-broker-25/src/bus/match.c 2020-12-03 11:53:50.000000000 +0100 @@ -1137,16 +1137,35 @@ } /** - * mach_registry_flush() - XXX + * match_registry_flush() - flush all links in this registry + * @registry: registry to operate on + * + * This flushes all links in this registry. Usually, the match owner still + * holds a reference, so the matches will likely stay around. The registry + * object merely holds the remote links for fast lookup. Once those are + * dropped, this registry object will no longer yield any results on lookup. + * + * Note that the match objects are not relinked by this function. Once you call + * this, the match objects will be unlinked and thus cannot be yielded by + * lookups anymore. Usually, you only want to call this when the owning object + * of this registry goes away, and all the linked matches are meant to be + * stale from this point on. */ void match_registry_flush(MatchRegistry *registry) { + CRBTree *trees[] = { + ®istry->subscription_tree, + ®istry->monitor_tree, + }; MatchRegistryByPath *registry_by_path, *registry_by_path_safe; + size_t i; - c_rbtree_for_each_entry_safe(registry_by_path, registry_by_path_safe, ®istry->subscription_tree, registry_node) { - match_registry_by_path_ref(registry_by_path); - match_registry_by_path_flush(registry_by_path); - match_registry_by_path_unref(registry_by_path); - } + for (i = 0; i < C_ARRAY_SIZE(trees); ++i) { + c_rbtree_for_each_entry_safe(registry_by_path, registry_by_path_safe, trees[i], registry_node) { + match_registry_by_path_ref(registry_by_path); + match_registry_by_path_flush(registry_by_path); + match_registry_by_path_unref(registry_by_path); + } - c_assert(c_rbtree_is_empty(®istry->subscription_tree)); + c_assert(c_rbtree_is_empty(trees[i])); + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/src/util/audit.c new/dbus-broker-25/src/util/audit.c --- old/dbus-broker-24/src/util/audit.c 2020-09-04 09:08:58.000000000 +0200 +++ new/dbus-broker-25/src/util/audit.c 2020-12-03 11:53:50.000000000 +0100 @@ -108,9 +108,6 @@ case UTIL_AUDIT_TYPE_AVC: audit_type = AUDIT_USER_AVC; break; - case UTIL_AUDIT_TYPE_SELINUX_ERROR: - audit_type = AUDIT_USER_SELINUX_ERR; - break; case UTIL_AUDIT_TYPE_NOAUDIT: default: audit_type = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/src/util/audit.h new/dbus-broker-25/src/util/audit.h --- old/dbus-broker-24/src/util/audit.h 2020-09-04 09:08:58.000000000 +0200 +++ new/dbus-broker-25/src/util/audit.h 2020-12-03 11:53:50.000000000 +0100 @@ -10,7 +10,6 @@ enum { UTIL_AUDIT_TYPE_NOAUDIT, UTIL_AUDIT_TYPE_AVC, - UTIL_AUDIT_TYPE_SELINUX_ERROR, }; int util_audit_drop_permissions(uint32_t uid, uint32_t gid); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/src/util/selinux.c new/dbus-broker-25/src/util/selinux.c --- old/dbus-broker-24/src/util/selinux.c 2020-09-04 09:08:58.000000000 +0200 +++ new/dbus-broker-25/src/util/selinux.c 2020-12-03 11:53:50.000000000 +0100 @@ -300,9 +300,6 @@ case SELINUX_AVC: audit_type = UTIL_AUDIT_TYPE_AVC; break; - case SELINUX_ERROR: - audit_type = UTIL_AUDIT_TYPE_SELINUX_ERROR; - break; default: /* not an auditable message. */ audit_type = UTIL_AUDIT_TYPE_NOAUDIT; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/subprojects/c-dvar/src/test-type.c new/dbus-broker-25/subprojects/c-dvar/src/test-type.c --- old/dbus-broker-24/subprojects/c-dvar/src/test-type.c 2020-04-16 12:28:12.000000000 +0200 +++ new/dbus-broker-25/subprojects/c-dvar/src/test-type.c 2020-10-26 08:53:39.000000000 +0100 @@ -78,13 +78,30 @@ ), }; +static void test_base(void) { + c_assert(sizeof(CDVarType) == 4); +} + static void test_common(void) { CDVarType *type = (CDVarType[2]){}; + unsigned int i; int r; r = c_dvar_type_new_from_string(&type, "()"); c_assert(!r); + /* test open coded comparison for better debugging */ + c_assert(type->length == 2); + for (i = 0; i < 2; ++i) { + c_assert(c_dvar_type_unit[i].size == type[i].size); + c_assert(c_dvar_type_unit[i].alignment == type[i].alignment); + c_assert(c_dvar_type_unit[i].element == type[i].element); + c_assert(c_dvar_type_unit[i].length == type[i].length); + c_assert(c_dvar_type_unit[i].basic == type[i].basic); + c_assert(c_dvar_type_unit[i].__padding == type[i].__padding); + } + + /* test memcmp-comparison for API guarantees */ c_assert(!memcmp(c_dvar_type_unit, type, type->length * sizeof(*type))); c_assert(!memcmp(c_dvar_type_unit, (const CDVarType[]){ C_DVAR_T_INIT(C_DVAR_T_TUPLE0) }, @@ -202,6 +219,7 @@ } int main(int argc, char **argv) { + test_base(); test_common(); test_known_types(); test_valid_types(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/subprojects/c-rbtree/AUTHORS new/dbus-broker-25/subprojects/c-rbtree/AUTHORS --- old/dbus-broker-24/subprojects/c-rbtree/AUTHORS 2020-04-16 12:28:50.000000000 +0200 +++ new/dbus-broker-25/subprojects/c-rbtree/AUTHORS 2020-10-26 08:52:10.000000000 +0100 @@ -34,4 +34,6 @@ AUTHORS: (ordered alphabetically) David Rheinsberg <david.rheinsb...@gmail.com> + Kay Sievers <k...@vrfy.org> + Thomas Haller <thal...@redhat.com> Tom Gundersen <t...@jklm.no> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/subprojects/c-rbtree/src/c-rbtree.c new/dbus-broker-25/subprojects/c-rbtree/src/c-rbtree.c --- old/dbus-broker-24/subprojects/c-rbtree/src/c-rbtree.c 2020-04-16 12:28:50.000000000 +0200 +++ new/dbus-broker-25/subprojects/c-rbtree/src/c-rbtree.c 2020-10-26 08:52:10.000000000 +0100 @@ -31,15 +31,17 @@ #include "c-rbtree-private.h" /* - * We use alignas(8) to enforce 64bit alignment of structure fields. This is - * according to ISO-C11, so we rely on the compiler to implement this. However, - * at the same time we don't want to exceed native malloc() alignment on target - * platforms. Hence, we also verify against max_align_t. + * We use the lower 2 bits of CRBNode pointers to store flags. Make sure + * CRBNode is 4-byte aligned, so the lower 2 bits are actually unused. We also + * sometimes store a pointer to the root-node, so make sure this one is also 4 + * byte aligned. + * Note that there are actually some architectures where `max_align_t` is 4, so + * we do not have much wiggle-room to extend this flag-set. */ static_assert(alignof(CRBNode) <= alignof(max_align_t), "Invalid RBNode alignment"); -static_assert(alignof(CRBNode) >= 8, "Invalid CRBNode alignment"); +static_assert(alignof(CRBNode) >= 4, "Invalid CRBNode alignment"); static_assert(alignof(CRBTree) <= alignof(max_align_t), "Invalid RBTree alignment"); -static_assert(alignof(CRBTree) >= 8, "Invalid CRBTree alignment"); +static_assert(alignof(CRBTree) >= 4, "Invalid CRBTree alignment"); /** * c_rbnode_leftmost() - return leftmost child diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/subprojects/c-rbtree/src/c-rbtree.h new/dbus-broker-25/subprojects/c-rbtree/src/c-rbtree.h --- old/dbus-broker-24/subprojects/c-rbtree/src/c-rbtree.h 2020-04-16 12:28:50.000000000 +0200 +++ new/dbus-broker-25/subprojects/c-rbtree/src/c-rbtree.h 2020-10-26 08:52:10.000000000 +0100 @@ -36,8 +36,7 @@ /* implementation detail */ #define C_RBNODE_RED (0x1UL) #define C_RBNODE_ROOT (0x2UL) -#define C_RBNODE_UNUSED3 (0x4UL) -#define C_RBNODE_FLAG_MASK (0x7UL) +#define C_RBNODE_FLAG_MASK (0x3UL) /** * struct CRBNode - Node of a Red-Black Tree @@ -60,7 +59,11 @@ * C_RBNODE_INIT. */ struct CRBNode { - alignas(8) unsigned long __parent_and_flags; + union { + unsigned long __parent_and_flags; + /* enforce >=4-byte alignment for @__parent_and_flags */ + alignas(4) unsigned char __align_dummy; + }; CRBNode *left; CRBNode *right; }; @@ -90,7 +93,11 @@ * To initialize an RB-Tree, set it to NULL / all zero. */ struct CRBTree { - alignas(8) CRBNode *root; + union { + CRBNode *root; + /* enforce >=4-byte alignment for @root */ + alignas(4) unsigned char __align_dummy; + }; }; #define C_RBTREE_INIT {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-broker-24/subprojects/c-stdaux/src/c-stdaux.h new/dbus-broker-25/subprojects/c-stdaux/src/c-stdaux.h --- old/dbus-broker-24/subprojects/c-stdaux/src/c-stdaux.h 2020-07-07 12:29:58.000000000 +0200 +++ new/dbus-broker-25/subprojects/c-stdaux/src/c-stdaux.h 2020-09-10 16:33:08.000000000 +0200 @@ -82,7 +82,10 @@ * * Return: Evaluates to @_expr. */ -#define C_EXPR_ASSERT(_expr, _assertion, _message) \ +#if defined(__COVERITY__) // Coverity cannot const-fold __builtin_choose_expr() +# define C_EXPR_ASSERT(_expr, _assertion, _message) (_expr) +#else +# define C_EXPR_ASSERT(_expr, _assertion, _message) \ /* indentation and line-split to get better diagnostics */ \ (__builtin_choose_expr( \ !!(1 + 0 * sizeof( \ @@ -93,6 +96,7 @@ (_expr), \ ((void)0) \ )) +#endif /** * C_STRINGIFY() - stringify a token, but evaluate it first _______________________________________________ openSUSE Commits mailing list -- commit@lists.opensuse.org To unsubscribe, email commit-le...@lists.opensuse.org List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette List Archives: https://lists.opensuse.org/archives/list/commit@lists.opensuse.org