diff --git a/libselinux/src/selinux_restorecon.c b/libselinux/src/selinux_restorecon.c index 195e7cb786f3fa518cd808a275c98679b720d612..12d5c47f560a90073b8447f7088270d00bf0cd4e 100644 --- a/libselinux/src/selinux_restorecon.c +++ b/libselinux/src/selinux_restorecon.c @@ -632,6 +632,7 @@ out: #define DATA_APP_EL3 "/data/app/el3/" #define DATA_APP_EL4 "/data/app/el4/" #define DATA_ACCOUNTS_ACCOUNT_0 "/data/accounts/account_0/" +#define DATA_SERVICE_EL2_BACKUP_BUNDLES "/data/service/el2/[0-9]*/backup/bundles" static int restorecon_sb(const char *pathname, const struct stat *sb, const struct rest_flags *flags, bool first) @@ -646,7 +647,8 @@ static int restorecon_sb(const char *pathname, const struct stat *sb, !strncmp(pathname, DATA_APP_EL2, sizeof(DATA_APP_EL2) - 1) || !strncmp(pathname, DATA_APP_EL3, sizeof(DATA_APP_EL3) - 1) || !strncmp(pathname, DATA_APP_EL4, sizeof(DATA_APP_EL4) - 1) || - !strncmp(pathname, DATA_ACCOUNTS_ACCOUNT_0, sizeof(DATA_ACCOUNTS_ACCOUNT_0) - 1)) { + !strncmp(pathname, DATA_ACCOUNTS_ACCOUNT_0, sizeof(DATA_ACCOUNTS_ACCOUNT_0) - 1) || + regex_cmp(pathname, DATA_SERVICE_EL2_BACKUP_BUNDLES) == SELABEL_EQUAL) { goto out; }