diff --git a/libselinux-rhat.patch b/libselinux-rhat.patch index 6907a8f..d19cc56 100644 --- a/libselinux-rhat.patch +++ b/libselinux-rhat.patch @@ -653,19 +653,29 @@ index b9e8002..355730a 100644 hidden_def(get_ordered_context_list) diff --git a/libselinux/src/label.c b/libselinux/src/label.c -index 11f6e96..9bf79c5 100644 +index 11f6e96..f5cb52a 100644 --- a/libselinux/src/label.c +++ b/libselinux/src/label.c -@@ -48,6 +48,9 @@ static char *selabel_sub(struct selabel_sub *ptr, const char *src) +@@ -43,12 +43,18 @@ static void selabel_subs_fini(struct selabel_sub *ptr) + static char *selabel_sub(struct selabel_sub *ptr, const char *src) + { + char *dst = NULL; ++ int len; + + while (ptr) { if (strncmp(src, ptr->src, ptr->slen) == 0 ) { if (src[ptr->slen] == '/' || src[ptr->slen] == 0) { +- if (asprintf(&dst, "%s%s", ptr->dst, &src[ptr->slen]) < 0) + if ((src[ptr->slen] == '/') && + (strcmp(ptr->dst, "/") == 0)) -+ ptr->slen++; - if (asprintf(&dst, "%s%s", ptr->dst, &src[ptr->slen]) < 0) ++ len = ptr->slen + 1; ++ else ++ len = ptr->slen; ++ if (asprintf(&dst, "%s%s", ptr->dst, &src[len]) < 0) return NULL; return dst; + } diff --git a/libselinux/src/label_file.c b/libselinux/src/label_file.c index 5f697f3..9b0d6b0 100644 --- a/libselinux/src/label_file.c diff --git a/libselinux.spec b/libselinux.spec index 4d31a4a..aad4bdc 100644 --- a/libselinux.spec +++ b/libselinux.spec @@ -10,7 +10,7 @@ Summary: SELinux library and simple utilities Name: libselinux Version: 2.1.13 -Release: 14%{?dist} +Release: 15%{?dist} License: Public Domain Group: System Environment/Libraries Source: %{name}-%{version}.tgz @@ -241,6 +241,9 @@ rm -rf %{buildroot} %{ruby_sitearch}/selinux.so %changelog +* Mon May 6 2013 Dan Walsh - 2.1.13-15 +- Fix patch that Handles substitutions for / + * Wed Apr 17 2013 Dan Walsh - 2.1.13-14 - Handle substitutions for / - semanage fcontext -a -e / /opt/rh/devtoolset-2/root