diff options
author | Nicolas Iooss <nicolas.iooss@m4x.org> | 2014-03-23 22:01:39 +0100 |
---|---|---|
committer | Sven Vermeulen <sven.vermeulen@siphos.be> | 2014-04-08 17:20:50 +0200 |
commit | 304ec5224b39f6d7ac2c731bd9b4c0fd4f5c0af8 (patch) | |
tree | 70dd4413bbe98654aab8182fff4f57cf08398ae9 /support | |
parent | fc_sort: initialize allocated memory to fix execution on an empty file (diff) | |
download | hardened-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.c | 20 |
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; } |