[PATCH 1/1] XSELinux: Fix initialisation of polyinstantiated properties and selections

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Note: This patch has been generated and tested on xorg-server-1.11.4

The specfile (x_contexts) is currently checked for non-poly properties
or selections first. If an entry should be present that specifies
a poly entry and there is a default non-poly entry as a fallback, then
this will be used instead (this is standard practice so that there is
always a known label added). This patch checks for poly_selection or
poly_property entries first and then checks non-poly entries.

Example x_contexts entry for selections:
poly_selection PRIMARY  system_u:object_r:clipboard_xselection_t:s0
selection CLIPBOARD     system_u:object_r:clipboard_xselection_t:s0
selection * system_u:object_r:xselection_t:s0 # default fallback

Signed-off-by: Richard Haines <richard_c_haines@xxxxxxxxxxxxxx>
---
 Xext/xselinux_label.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/Xext/xselinux_label.c b/Xext/xselinux_label.c
index e5929fa..ceb5a7e 100644
--- a/Xext/xselinux_label.c
+++ b/Xext/xselinux_label.c
@@ -97,16 +97,16 @@ SELinuxAtomToSIDLookup(Atom atom, SELinuxObjectRec *obj, int map, int polymap)
     security_context_t ctx;
     int rc = Success;
 
-    obj->poly = 1;
+    obj->poly = 0;
 
     /* Look in the mappings of names to contexts */
-    if (selabel_lookup_raw(label_hnd, &ctx, name, map) == 0) {
-	obj->poly = 0;
+    if (selabel_lookup_raw(label_hnd, &ctx, name, polymap) == 0) {
+	obj->poly = 1;
     } else if (errno != ENOENT) {
-	ErrorF("SELinux: a property label lookup failed!\n");
+	ErrorF("SELinux: a poly property or selection label lookup failed!\n");
 	return BadValue;
-    } else if (selabel_lookup_raw(label_hnd, &ctx, name, polymap) < 0) {
-	ErrorF("SELinux: a property label lookup failed!\n");
+    } else if (selabel_lookup_raw(label_hnd, &ctx, name, map) < 0) {
+	ErrorF("SELinux: a property or selection label lookup failed!\n");
 	return BadValue;
     }
 
-- 
1.7.7.1



--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.


[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux