[PATCH] libselinux: android: support exact match for a property key

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

 



Performs exact match if a property key of property contexts ends with '$'
instead of prefix match.

This will enable to define an exact rule which can avoid unexpected
context assignment.

Signed-off-by: Jaekyun Seok <jaekyun@xxxxxxxxxx>
---
 libselinux/src/label_backends_android.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/libselinux/src/label_backends_android.c b/libselinux/src/label_backends_android.c
index cb8aae26..4611d396 100644
--- a/libselinux/src/label_backends_android.c
+++ b/libselinux/src/label_backends_android.c
@@ -258,8 +258,13 @@ static struct selabel_lookup_rec *property_lookup(struct selabel_handle *rec,
 	}
 
 	for (i = 0; i < data->nspec; i++) {
-		if (strncmp(spec_arr[i].property_key, key,
-			    strlen(spec_arr[i].property_key)) == 0) {
+		size_t property_key_len = strlen(spec_arr[i].property_key);
+		if (spec_arr[i].property_key[property_key_len - 1] == '$' &&
+		    strlen(key) == property_key_len - 1 &&
+		    strncmp(spec_arr[i].property_key, key, property_key_len - 1) == 0) {
+			break;
+		}
+		if (strncmp(spec_arr[i].property_key, key, property_key_len) == 0) {
 			break;
 		}
 		if (strncmp(spec_arr[i].property_key, "*", 1) == 0)
-- 
2.15.0.rc0.271.g36b669edcc-goog





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

  Powered by Linux