From 65deaaacf507c9e1d01773887d8c56be847ff1bd Mon Sep 17 00:00:00 2001 From: Nicolas Williams <nico@cryptonector.com> Date: Sat, 4 May 2013 17:03:01 -0500 Subject: [PATCH] Fix #111: exit(1) when inputs are not valid JSON --- main.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index afdff189..423510b6 100644 --- a/main.c +++ b/main.c @@ -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; }