The command "ip --details link show canX" misses the closing bracket `]' of the bitrate, the dbitrate and the termination arrays. The JSON output is not impacted. Change the first argument of close_json_array() from PRINT_JSON to PRINT_ANY to fix the problem. The second argument is already set correctly. Fixes: 67f3c7a5cc0d ("iplink_can: use PRINT_ANY to factorize code and fix signedness") Reported-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> via vger.kernel.org> Signed-off-by: Vincent Mailhol <mailhol.vincent@xxxxxxxxxx> --- ip/iplink_can.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ip/iplink_can.c b/ip/iplink_can.c index 0e670a6c..9bbe3d95 100644 --- a/ip/iplink_can.c +++ b/ip/iplink_can.c @@ -519,7 +519,7 @@ static void can_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) i < bitrate_cnt - 1 ? "%8u, " : "%8u", bitrate_const[i]); } - close_json_array(PRINT_JSON, " ]"); + close_json_array(PRINT_ANY, " ]"); } /* data bittiming is irrelevant if fixed bitrate is defined */ @@ -606,7 +606,7 @@ static void can_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) i < dbitrate_cnt - 1 ? "%8u, " : "%8u", dbitrate_const[i]); } - close_json_array(PRINT_JSON, " ]"); + close_json_array(PRINT_ANY, " ]"); } if (tb[IFLA_CAN_TERMINATION_CONST] && tb[IFLA_CAN_TERMINATION]) { @@ -623,7 +623,7 @@ static void can_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[]) print_hu(PRINT_ANY, NULL, i < trm_cnt - 1 ? "%hu, " : "%hu", trm_const[i]); - close_json_array(PRINT_JSON, " ]"); + close_json_array(PRINT_ANY, " ]"); } if (tb[IFLA_CAN_CLOCK]) { -- 2.35.1