libselinux/libselinux-rhat.patch
Daniel J Walsh 8e994c6484 - Update from NSA
Merged matchpathcon patch for file_contexts.homedir from Dan Walsh.
Added selinux_users_path() for path to directory containing system.users
    and local.users.
2005-02-17 19:27:56 +00:00

71 lines
1.8 KiB
Diff

diff --exclude-from=exclude -N -u -r nsalibselinux/src/matchpathcon.c libselinux-1.21.9/src/matchpathcon.c
--- nsalibselinux/src/matchpathcon.c 2005-02-17 14:22:28.000000000 -0500
+++ libselinux-1.21.9/src/matchpathcon.c 2005-02-11 02:36:46.000000000 -0500
@@ -553,29 +553,27 @@
nspec = 0;
while (fgets_unlocked(line_buf, sizeof line_buf, fp) && nspec < maxnspec) {
if (process_line(path, line_buf, pass, ++lineno) != 0)
- goto finish;
+ return -1;
}
if (homedirfp)
while (fgets_unlocked(line_buf, sizeof line_buf, homedirfp) && nspec < maxnspec) {
if (process_line(homedir_path, line_buf, pass, ++lineno) != 0)
- goto finish;
+ return -1;
}
if (localfp)
while (fgets_unlocked(line_buf, sizeof line_buf, localfp) && nspec < maxnspec) {
if (process_line(local_path, line_buf, pass, ++lineno) != 0)
- goto finish;
+ return -1;
}
if (pass == 0) {
- if (nspec == 0) {
- status = 0;
- goto finish;
- }
+ if (nspec == 0)
+ return 0;
if ((spec_arr = malloc(sizeof(spec_t) * nspec)) ==
NULL)
- goto finish;
+ return -1;
memset(spec_arr, '\0', sizeof(spec_t) * nspec);
maxnspec = nspec;
rewind(fp);
@@ -583,11 +581,13 @@
if (localfp) rewind(localfp);
}
}
-
+ fclose(fp);
+ if (homedirfp) fclose(homedirfp);
+ if (localfp) fclose(localfp);
/* Move exact pathname specifications to the end. */
spec_copy = malloc(sizeof(spec_t) * nspec);
if (!spec_copy)
- goto finish;
+ return -1;
j = 0;
for (i = 0; i < nspec; i++) {
if (spec_arr[i].hasMetaChars)
@@ -602,13 +602,7 @@
nodups_specs(path);
- status = 0;
- finish:
- fclose(fp);
- if (spec_arr != spec_copy) free(spec_arr);
- if (homedirfp) fclose(homedirfp);
- if (localfp) fclose(localfp);
- return status;
+ return 0;
}
hidden_def(matchpathcon_init)