commit: 304ec5224b39f6d7ac2c731bd9b4c0fd4f5c0af8 Author: Nicolas Iooss <nicolas.iooss <AT> m4x <DOT> org> AuthorDate: Sun Mar 23 21:01:39 2014 +0000 Commit: Sven Vermeulen <swift <AT> gentoo <DOT> org> CommitDate: Tue Apr 8 15:20:50 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=304ec522
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 --- support/fc_sort.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/support/fc_sort.c b/support/fc_sort.c index 5aed783..6dc59af 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; }
