aboutsummaryrefslogtreecommitdiffstats
path: root/libselinux/src
diff options
context:
space:
mode:
Diffstat (limited to 'libselinux/src')
-rw-r--r--libselinux/src/label_file.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libselinux/src/label_file.c b/libselinux/src/label_file.c
index 04b3826c..b91e1e6a 100644
--- a/libselinux/src/label_file.c
+++ b/libselinux/src/label_file.c
@@ -302,6 +302,14 @@ static int load_mmap(struct selabel_handle *rec, const char *path,
}
spec->lr.ctx_raw = str_buf;
+ if (strcmp(spec->lr.ctx_raw, "<<none>>") && rec->validating) {
+ if (selabel_validate(rec, &spec->lr) < 0) {
+ selinux_log(SELINUX_ERROR,
+ "%s: context %s is invalid\n", mmap_path, spec->lr.ctx_raw);
+ goto err;
+ }
+ }
+
/* Process regex string */
rc = next_entry(&entry_len, mmap_area, sizeof(uint32_t));
if (rc < 0 || !entry_len) {