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[] = {
+                &registry->subscription_tree,
+                &registry->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, 
&registry->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(&registry->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

Reply via email to