git » modemmanager.git » commit 99e8117

Fix bus policy

author Jan Alexander Steffens
2015-07-16 19:36:04 UTC
committer Jan Alexander Steffens
2015-07-16 19:36:04 UTC
parent 9afaafda9a65f7908f79c9726e70d3259fc52f21

Fix bus policy

PKGBUILD +10 -3
bus-signals.patch +43 -0

diff --git a/PKGBUILD b/PKGBUILD
index 5ab487a..63e1500 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,15 +4,22 @@
 pkgbase=modemmanager
 pkgname=(modemmanager libmm-glib)
 pkgver=1.4.10
-pkgrel=1
+pkgrel=2
 pkgdesc="Mobile broadband modem management service"
 arch=(i686 x86_64)
 url="http://www.freedesktop.org/wiki/Software/ModemManager/"
 license=(GPL2 LGPL2.1)
 depends=(systemd libgudev polkit ppp libqmi libmbim hicolor-icon-theme)
 makedepends=(intltool gtk-doc gobject-introspection vala)
-source=(http://www.freedesktop.org/software/ModemManager/ModemManager-$pkgver.tar.xz)
-sha256sums=('107ba0b4d0749aebb0347691a39f60891cc6004aeca8b2128d69c50557049a63')
+source=(http://www.freedesktop.org/software/ModemManager/ModemManager-${pkgver}.tar.xz
+        bus-signals.patch)
+sha256sums=('107ba0b4d0749aebb0347691a39f60891cc6004aeca8b2128d69c50557049a63'
+            '2bf544ace3e79276f8e9c113fe3468506da74eb7f4ce1de5b33ea0e955dfd09e')
+
+prepare() {
+  cd ModemManager-$pkgver
+  patch -Np1 -i ../bus-signals.patch
+}
 
 build() {
   cd ModemManager-$pkgver
diff --git a/bus-signals.patch b/bus-signals.patch
new file mode 100644
index 0000000..b1e7e9b
--- /dev/null
+++ b/bus-signals.patch
@@ -0,0 +1,43 @@
+From a043f8064b6d1fb1ce5ee4b1d263117ea6eac505 Mon Sep 17 00:00:00 2001
+From: David Herrmann <dh.herrmann@gmail.com>
+Date: Wed, 15 Jul 2015 13:49:49 +0200
+Subject: policy: don't prevent us from receiving signals
+
+By using:
+    <deny send_destination="org.freedesktop.ModemManager1"/>
+
+..we prevent anyone on the system from sending us signals, even if we
+subscribed to them. This is clearly not what this line intended. More
+importantly, we silently break mm-auth-provider-polkit, as we never
+receiver 'changed' signals via PolkitAuthority. Right now, this is not
+required by the implementation of PolkitAuthority, but ModemManager
+should not place restrictions on the implementation of external
+libraries.
+
+So make sure we only prevent Method-Calls to be sent to us. Any other
+message that we didn't expect is automatically discarded by gdbus,
+anyway.
+
+Without this change, debugging dbus policies constantly shows messages
+that Polkit couldn't send the 'changed' signal to ModemManager. This is
+suppressed in non-debugging mode. But it would make debugging a lot
+easier, if we'd avoid force-dropping those events and not clutter the
+debug-log.
+
+diff --git a/data/org.freedesktop.ModemManager1.conf.polkit b/data/org.freedesktop.ModemManager1.conf.polkit
+index d1ea166..6b90b4b 100644
+--- a/data/org.freedesktop.ModemManager1.conf.polkit
++++ b/data/org.freedesktop.ModemManager1.conf.polkit
+@@ -3,7 +3,8 @@
+  "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+ <busconfig>
+   <policy context="default">
+-    <deny send_destination="org.freedesktop.ModemManager1"/>
++    <deny send_destination="org.freedesktop.ModemManager1"
++          send_type="method_call"/>
+ 
+     <!-- Methods listed here are explicitly allowed or PolicyKit protected.
+          The rest are restricted to root for security.
+-- 
+cgit v0.10.2
+