From 594cfa86469c005972ba750614f5b3f1af84d0f6 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Tue, 23 Jan 2024 08:55:43 +0100 Subject: [PATCH] main: fix spurious premature parse aborts in array mode When reading newline separated JSON (array mode), continue parsing even if the JSON tokener signals success, as another object might follow. Fixes: FS#3683 Fixes: openwrt#8703 Fixes: openwrt#11649 Fixes: openwrt#12344 Fixes: 8614470 ("main: implement array mode") Signed-off-by: Jo-Philipp Wich --- main.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/main.c b/main.c index 5041d10..a0c7b03 100644 --- a/main.c +++ b/main.c @@ -146,10 +146,8 @@ parse_json(FILE *fd, const char *source, const char **error, bool array_mode) { obj = parse_json_chunk(tok, array, buf, len, &err); - if (err == json_tokener_success && !array) - break; - - if (err != json_tokener_continue) + if ((err == json_tokener_success && array_mode == false) || + (err != json_tokener_continue && err != json_tokener_success)) break; } } -- 2.30.2