libsemanage/libsemanage-rhat.patch
2009-04-17 15:25:00 +00:00

117 lines
3.6 KiB
Diff

diff --exclude-from=exclude -N -u -r nsalibsemanage/src/direct_api.c libsemanage-2.0.31/src/direct_api.c
--- nsalibsemanage/src/direct_api.c 2009-01-13 08:45:35.000000000 -0500
+++ libsemanage-2.0.31/src/direct_api.c 2009-04-09 11:49:42.000000000 -0400
@@ -991,7 +991,7 @@
int retval = -1;
char *data = NULL;
- size_t data_len = 0;
+ ssize_t data_len = 0;
int compressed = 0;
int in_fd = -1;
@@ -999,7 +999,7 @@
return -1;
}
- if ((data_len = map_file(in_fd, &data, &compressed)) == 0) {
+ if ((data_len = map_file(in_fd, &data, &compressed)) <= 0) {
goto cleanup;
}
@@ -1117,7 +1117,7 @@
{
int retval = -1;
char *data = NULL;
- size_t data_len = 0;
+ ssize_t data_len = 0;
int compressed = 0;
int in_fd = -1;
@@ -1125,7 +1125,7 @@
return -1;
}
- if ((data_len = map_file(in_fd, &data, &compressed)) == 0) {
+ if ((data_len = map_file(in_fd, &data, &compressed)) <= 0) {
goto cleanup;
}
@@ -1187,7 +1187,7 @@
{
int retval = -1;
char *data = NULL;
- size_t data_len = 0;
+ ssize_t data_len = 0;
int compressed = 0;
int in_fd;
@@ -1195,7 +1195,7 @@
return -1;
}
- if ((data_len = map_file(in_fd, &data, &compressed)) == 0) {
+ if ((data_len = map_file(in_fd, &data, &compressed)) <= 0) {
goto cleanup;
}
diff --exclude-from=exclude -N -u -r nsalibsemanage/src/genhomedircon.c libsemanage-2.0.31/src/genhomedircon.c
--- nsalibsemanage/src/genhomedircon.c 2008-08-28 09:34:24.000000000 -0400
+++ libsemanage-2.0.31/src/genhomedircon.c 2009-03-26 14:55:01.000000000 -0400
@@ -794,6 +794,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/handle.c libsemanage-2.0.31/src/handle.c
--- nsalibsemanage/src/handle.c 2008-11-14 17:10:15.000000000 -0500
+++ libsemanage-2.0.31/src/handle.c 2009-03-26 14:55:01.000000000 -0400
@@ -264,7 +264,7 @@
assert(sh != NULL && sh->funcs != NULL && sh->funcs->commit != NULL);
if (!sh->is_in_transaction) {
ERR(sh,
- "Will not commit because caller does not have a tranaction lock yet.");
+ "Will not commit because caller does not have a transaction lock yet.");
return -1;
}
retval = sh->funcs->commit(sh);
diff --exclude-from=exclude -N -u -r nsalibsemanage/src/semanage.conf libsemanage-2.0.31/src/semanage.conf
--- nsalibsemanage/src/semanage.conf 2008-08-28 09:34:24.000000000 -0400
+++ libsemanage-2.0.31/src/semanage.conf 2009-03-26 14:55:01.000000000 -0400
@@ -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-03-26 14:55:01.000000000 -0400
@@ -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;
}
}