diff options
author | Nicolas Williams <nico@cryptonector.com> | 2013-05-04 17:03:01 -0500 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2013-05-06 12:36:53 -0500 |
commit | 65deaaacf507c9e1d01773887d8c56be847ff1bd (patch) | |
tree | d208414ebd2b7b0d6554c697299bd1ae049508b2 /main.c | |
parent | 74eb914aba5ff4abfed2574f4555c6a358ae6dbd (diff) |
Fix #111: exit(1) when inputs are not valid JSON
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -143,6 +143,7 @@ static int read_more(char* buf, size_t size) { } int main(int argc, char* argv[]) { + int ret = 0; if (argc) progname = argv[0]; if (argc > 1 && !strcmp(argv[1], "--run-tests")) { @@ -276,6 +277,7 @@ int main(int argc, char* argv[]) { jv msg = jv_invalid_get_msg(value); fprintf(stderr, "parse error: %s\n", jv_string_value(msg)); jv_free(msg); + ret = 1; break; } else { jv_free(value); @@ -283,11 +285,14 @@ int main(int argc, char* argv[]) { } } jv_parser_free(&parser); + if (ret != 0) + goto out; if (options & SLURP) { process(slurped, jq_flags); } } +out: jv_mem_free(input_filenames); bytecode_free(bc); - return 0; + return ret; } |