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 <guigom@riseup.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
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;
}