7313e2e
diff --exclude-from=exclude -N -u -r nsalibsemanage/src/genhomedircon.c libsemanage-2.0.35/src/genhomedircon.c
1639efd
--- nsalibsemanage/src/genhomedircon.c	2008-08-28 09:34:24.000000000 -0400
7313e2e
+++ libsemanage-2.0.35/src/genhomedircon.c	2009-08-26 15:05:01.000000000 -0400
7313e2e
@@ -304,10 +304,20 @@
168ea7c
 			continue;
168ea7c
 		if (!semanage_list_find(shells, pwbuf->pw_shell))
168ea7c
 			continue;
168ea7c
+		int len = strlen(pwbuf->pw_dir) -1;
168ea7c
+		for(; len > 0 && pwbuf->pw_dir[len]=='/'; len--) {
168ea7c
+			pwbuf->pw_dir[len]=0;
168ea7c
+		}
168ea7c
 		if (strcmp(pwbuf->pw_dir, "/") == 0)
168ea7c
 			continue;
168ea7c
 		if (semanage_str_count(pwbuf->pw_dir, '/') <= 1)
7313e2e
 			continue;
7313e2e
+
7313e2e
+		if (strcmp(pwbuf->pw_dir, "/root") == 0) {
7313e2e
+			/* don't relabel /root*/
7313e2e
+			continue;
7313e2e
+		}
7313e2e
+
7313e2e
 		if (!(path = strdup(pwbuf->pw_dir))) {
7313e2e
 			break;
7313e2e
 		}
7313e2e
@@ -794,6 +804,11 @@
1639efd
 			 * /root */
1639efd
 			continue;
1639efd
 		}
1639efd
+		if (strcmp(pwent->pw_dir, "/root") == 0) {
1639efd
+			/* don't relabel /root*/
1639efd
+			continue;
1639efd
+		}
168ea7c
+
1639efd
 		if (push_user_entry(&head, name, seuname,
1639efd
 				    prefix, pwent->pw_dir) != STATUS_SUCCESS) {
1639efd
 			*errors = STATUS_ERR;
7313e2e
diff --exclude-from=exclude -N -u -r nsalibsemanage/src/semanage.conf libsemanage-2.0.35/src/semanage.conf
ead711e
--- nsalibsemanage/src/semanage.conf	2008-08-28 09:34:24.000000000 -0400
7313e2e
+++ libsemanage-2.0.35/src/semanage.conf	2009-08-05 15:21:56.000000000 -0400
1427637
@@ -35,4 +35,4 @@
1427637
 # given in <sepol/policydb.h>.  Change this setting if a different
1427637
 # version is necessary.
1427637
 #policy-version = 19
1427637
-
1427637
+expand-check=0