aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Iooss <nicolas.iooss@m4x.org>2014-03-23 22:01:39 +0100
committerSven Vermeulen <sven.vermeulen@siphos.be>2014-04-08 17:20:50 +0200
commit304ec5224b39f6d7ac2c731bd9b4c0fd4f5c0af8 (patch)
tree70dd4413bbe98654aab8182fff4f57cf08398ae9 /support
parentfc_sort: initialize allocated memory to fix execution on an empty file (diff)
downloadhardened-refpolicy-304ec5224b39f6d7ac2c731bd9b4c0fd4f5c0af8.tar.gz
hardened-refpolicy-304ec5224b39f6d7ac2c731bd9b4c0fd4f5c0af8.tar.bz2
hardened-refpolicy-304ec5224b39f6d7ac2c731bd9b4c0fd4f5c0af8.zip
fc_sort: make outfile argument optional
When working on fc_sort to try to understand why using /usr/s?bin/... file contexts has been reported not to work properly [1], I found it frustrating not to be able to do "tmp/fc_sort my_filecontexts.fc" and see the result printed on the screen. This patch implements this behavior by making optional the second argument of fc_sort. [1] commit 36e2216f8 of contrib repository, http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=36e2216f82192660d063012e69281f27ba20864b
Diffstat (limited to 'support')
-rw-r--r--support/fc_sort.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/support/fc_sort.c b/support/fc_sort.c
index 5aed783c..6dc59afd 100644
--- a/support/fc_sort.c
+++ b/support/fc_sort.c
@@ -328,13 +328,13 @@ int main(int argc, char *argv[])
/* Check for the correct number of command line arguments. */
- if (argc != 3) {
- fprintf(stderr, "Usage: %s <infile> <outfile>\n",argv[0]);
+ if (argc < 2 || argc > 3) {
+ fprintf(stderr, "Usage: %s <infile> [<outfile>]\n",argv[0]);
return 1;
}
input_name = argv[1];
- output_name = argv[2];
+ output_name = (argc >= 3) ? argv[2] : NULL;
i = j = lines = 0;
@@ -526,9 +526,13 @@ int main(int argc, char *argv[])
fc_merge_sort(master);
/* Open the output file. */
- if (!(out_file = fopen(output_name, "w"))) {
- printf("Error: failure opening output file for write.\n");
- return -1;
+ if (output_name) {
+ if (!(out_file = fopen(output_name, "w"))) {
+ printf("Error: failure opening output file for write.\n");
+ return -1;
+ }
+ } else {
+ out_file = stdout;
}
/* Output the sorted file_context linked list to the output file. */
@@ -555,7 +559,9 @@ int main(int argc, char *argv[])
}
free(master);
- fclose(out_file);
+ if (output_name) {
+ fclose(out_file);
+ }
return 0;
}