Setup path correctly after stream parsing a key:value object pair (#2642)
This commit is contained in:
1 parent
7d424fd52e
commit
dfd440f0de
2 files changed
+5
-1
No files matched your search
+1
-1
@@ -299,7 +299,7 @@ static pfunc stream_token(struct jv_parser* p, char ch) {
|
|||||||
p->output = JV_ARRAY(jv_copy(p->path), p->next);
|
p->output = JV_ARRAY(jv_copy(p->path), p->next);
|
||||||
p->next = jv_invalid();
|
p->next = jv_invalid();
|
||||||
}
|
}
|
||||||
p->path = jv_array_set(p->path, p->stacklen - 1, jv_true()); // ready for another name:value pair
|
p->path = jv_array_set(p->path, p->stacklen - 1, jv_null()); // ready for another key:value pair
|
||||||
p->last_seen = JV_LAST_COMMA;
|
p->last_seen = JV_LAST_COMMA;
|
||||||
} else {
|
} else {
|
||||||
assert(k == JV_KIND_NULL);
|
assert(k == JV_KIND_NULL);
|
||||||
|
|||||||
@@ -203,6 +203,10 @@ else
|
|||||||
echo "Not doing torture tests"
|
echo "Not doing torture tests"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
## Regression test for issue #2378 assert when stream parse broken object pair
|
||||||
|
echo '{"a":1,"b",' | $JQ --stream > /dev/null 2> $d/err
|
||||||
|
grep 'Objects must consist of key:value pairs' $d/err > /dev/null
|
||||||
|
|
||||||
## Fuzz parser
|
## Fuzz parser
|
||||||
|
|
||||||
## XXX With a $(urandom) builtin we could move this test into tests/all.test
|
## XXX With a $(urandom) builtin we could move this test into tests/all.test
|
||||||
|
|||||||
Reference in new issue
Block a user