From: Nicolas Williams Date: Tue, 22 Sep 2015 04:24:08 +0000 (-0500) Subject: EOF after newline in string mishandled (fix #951) X-Git-Tag: jq-1.6rc1~169 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c4524da3e092adcb4d0af5636ae2309d08418a9e;p=jq EOF after newline in string mishandled (fix #951) --- diff --git a/src/util.c b/src/util.c index e18a91b..3f7cab8 100644 --- a/src/util.c +++ b/src/util.c @@ -435,10 +435,8 @@ jv jq_util_input_next_input(jq_util_input_state *state) { } else { if (jv_parser_remaining(state->parser) == 0) { is_last = jq_util_input_read_more(state); - if (is_last && state->buf_valid_len == 0) { + if (is_last && state->buf_valid_len == 0) value = jv_invalid(); - break; - } jv_parser_set_buf(state->parser, state->buf, state->buf_valid_len, !is_last); } value = jv_parser_next(state->parser); diff --git a/tests/shtest b/tests/shtest index 6e7690e..1a95613 100755 --- a/tests/shtest +++ b/tests/shtest @@ -109,10 +109,21 @@ printf '1' | $JQ -ce --seq . > $d/out 2>&1 cmp $d/out $d/expected cat > $d/expected <:1): Unfinished abandoned text at EOF at line 2, column 0 EOF -printf '1\n' | $JQ -cen --seq '[inputs] == []' >/dev/null 2> $d/out +if printf '1\n' | $JQ -cen --seq '[inputs] == []' >/dev/null 2> $d/out; then + printf 'Error expected but jq exited successfully\n' 1>&2 + exit 2 +fi cmp $d/out $d/expected +# Regression test for #951 +printf '"a\n' > $d/input +if $VALGRIND $Q $JQ -e . $d/input; then + printf 'Issue #951 is back?\n' 1>&2 + exit 2 +fi + ## Test streaming parser ## If we add an option to stream to the `import ... as $symbol;` directive