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