summaryrefslogtreecommitdiff
path: root/bus/apparmor.c
diff options
context:
space:
mode:
authorTyler Hicks <tyhicks@canonical.com>2015-02-04 17:53:31 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2015-02-18 20:42:05 +0000
commit24f1502e42b58a7c238779c023c6bfe870dc78cc (patch)
treedf05ab64c7129955498554e7d02a1577ab1b2dfb /bus/apparmor.c
parenteac45c0484edfdbf5d8d7c0b613c31dc64d2f53b (diff)
downloaddbus-24f1502e42b58a7c238779c023c6bfe870dc78cc.tar.gz
Add DBus method to return the AA context of a connection
This is not intended for upstream inclusion. It implements a bus method (GetConnectionAppArmorSecurityContext) to get a connection's AppArmor security context but upstream D-Bus has recently added a generic way of getting a connection's security credentials (GetConnectionCredentials). Ubuntu should carry this patch until packages in the archive are moved over to the new, generic method of getting a connection's credentials. [Altered by Simon McVittie: survive non-UTF-8 contexts which would otherwise be a local denial of service, except that Ubuntu inherits a non-fatal warnings patch from Debian; new commit message taken from the Ubuntu changelog; do not emit unreachable code if AppArmor is disabled.]
Diffstat (limited to 'bus/apparmor.c')
-rw-r--r--bus/apparmor.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/bus/apparmor.c b/bus/apparmor.c
index 072e2edf..af76ca27 100644
--- a/bus/apparmor.c
+++ b/bus/apparmor.c
@@ -105,6 +105,21 @@ bus_apparmor_confinement_new (char *label,
return confinement;
}
+const char*
+bus_apparmor_confinement_get_label (BusAppArmorConfinement *confinement)
+{
+#ifdef HAVE_APPARMOR
+ if (!apparmor_enabled)
+ return NULL;
+
+ _dbus_assert (confinement != NULL);
+
+ return confinement->label;
+#else
+ return NULL;
+#endif
+}
+
void
bus_apparmor_confinement_unref (BusAppArmorConfinement *confinement)
{