From: Jose M. Guisado Gomez Date: Sun, 6 Dec 2020 10:12:33 +0000 (+0100) Subject: monitor: add assignment check for json_echo X-Git-Tag: v0.9.8~30 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=12fdaf7e3efdab1f30f40154ee7db3f25cbb0add;p=thirdparty%2Fnftables.git monitor: add assignment check for json_echo When --echo and --json is specified and native syntax is read, only the last instruction is printed. This happens because the reference to the json_echo is reassigned each time netlink_echo_callback is executed for an instruction to be echoed. Add an assignment check for json_echo to avoid reassigning it. Fixes: cb7e02f44d6a (src: enable json echo output when reading native syntax) Signed-off-by: Jose M. Guisado Gomez Signed-off-by: Pablo Neira Ayuso --- diff --git a/src/monitor.c b/src/monitor.c index a733a9f0..2b5325ea 100644 --- a/src/monitor.c +++ b/src/monitor.c @@ -939,8 +939,8 @@ int netlink_echo_callback(const struct nlmsghdr *nlh, void *data) if (nft_output_json(&nft->output)) { if (nft->json_root) return json_events_cb(nlh, &echo_monh); - - json_alloc_echo(nft); + if (!nft->json_echo) + json_alloc_echo(nft); echo_monh.format = NFTNL_OUTPUT_JSON; }