[libselinux] Fix patch that Handles substitutions for /

Daniel J Walsh dwalsh at fedoraproject.org
Mon May 6 13:43:17 UTC 2013


commit 4720ddb09f46f4848a7f7530995330c2e1be321d
Author: Dan Walsh <dwalsh at redhat.com>
Date:   Mon May 6 09:43:03 2013 -0400

    Fix patch that Handles substitutions for /

 libselinux-rhat.patch |   18 ++++++++++++++----
 libselinux.spec       |    5 ++++-
 2 files changed, 18 insertions(+), 5 deletions(-)
---
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 <dwalsh at redhat.com> - 2.1.13-15
+- Fix patch that Handles substitutions for /
+
 * Wed Apr 17 2013 Dan Walsh <dwalsh at redhat.com> - 2.1.13-14
 - Handle substitutions for /
 - semanage fcontext -a -e  / /opt/rh/devtoolset-2/root


More information about the scm-commits mailing list