forked from pool/libsemanage
48 lines
1.7 KiB
Diff
48 lines
1.7 KiB
Diff
diff --exclude-from=exclude -N -u -r nsalibsemanage/src/genhomedircon.c libsemanage-2.0.30/src/genhomedircon.c
|
|
--- nsalibsemanage/src/genhomedircon.c 2008-08-28 09:34:24.000000000 -0400
|
|
+++ libsemanage-2.0.30/src/genhomedircon.c 2009-01-12 10:29:24.000000000 -0500
|
|
@@ -794,6 +792,12 @@
|
|
* /root */
|
|
continue;
|
|
}
|
|
+ if (strcmp(pwent->pw_dir, "/root") == 0) {
|
|
+ /* don't relabel / genhomdircon checked to see if root
|
|
+ * was the user and if so, set his home directory to
|
|
+ * /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.30/src/semanage.conf
|
|
--- nsalibsemanage/src/semanage.conf 2008-08-28 09:34:24.000000000 -0400
|
|
+++ libsemanage-2.0.30/src/semanage.conf 2009-01-12 10:29:24.000000000 -0500
|
|
@@ -35,4 +35,4 @@
|
|
# given in <sepol/policydb.h>. Change this setting if a different
|
|
# version is necessary.
|
|
#policy-version = 19
|
|
-
|
|
+expand-check=0
|
|
diff --exclude-from=exclude -N -u -r nsalibsemanage/src/semanage_store.c libsemanage-2.0.31/src/semanage_store.c
|
|
--- nsalibsemanage/src/semanage_store.c 2009-01-13 08:45:35.000000000 -0500
|
|
+++ libsemanage-2.0.31/src/semanage_store.c 2009-01-15 15:53:46.000000000 -0500
|
|
@@ -440,8 +440,6 @@
|
|
char tmp[PATH_MAX];
|
|
char buf[4192];
|
|
|
|
- if (link(src,dst) == 0) return 0;
|
|
-
|
|
n = snprintf(tmp, PATH_MAX, "%s.tmp", dst);
|
|
if (n < 0 || n >= PATH_MAX)
|
|
return -1;
|
|
@@ -509,7 +507,8 @@
|
|
goto cleanup;
|
|
}
|
|
} else if (S_ISREG(sb.st_mode)) {
|
|
- if (semanage_copy_file(path, path2, sb.st_mode) == -1) {
|
|
+ if ((link(path,path2) == -1) &&
|
|
+ (semanage_copy_file(path, path2, sb.st_mode) == -1)) {
|
|
goto cleanup;
|
|
}
|
|
}
|