From: Stephen Hemminger <stephen@networkplumber.org>
To: Zhengyi Fu <i@fuzy.me>
Cc: netdev@vger.kernel.org
Subject: Re: [BUG] iproute2 - ip -d -j tuntap outputs malformed JSON
Date: Fri, 21 Nov 2025 16:10:07 -0800 [thread overview]
Message-ID: <20251121161007.4c7ebae6@phoenix.local> (raw)
In-Reply-To: <87jyzkvwoq.fsf@fuzy.me>
On Fri, 21 Nov 2025 12:25:41 +0800
Zhengyi Fu <i@fuzy.me> wrote:
> Hi iproute2 maintainers,
>
> $ sudo ip -d -j tuntap
> [{"ifname":"tun0","flags":["tun","persist"],"processes":["name":"ssh","pid":86812]}]
>
> The “processes” value looks like it should be an array of objects, so
> the inner braces seem to be missing:
>
> [{"ifname":"tun0","flags":["tun","persist"],"processes":[{"name":"ssh","pid":86812}]}]
>
> Could you confirm whether this is a formatting bug or if the output is
> intentionally flattened?
>
> Thanks!
>
It should be an array of objects. You can confirm by seeing the output
with multiple processes.
Does this fix it?
diff --git a/ip/iptuntap.c b/ip/iptuntap.c
index b7018a6f..6718ec6c 100644
--- a/ip/iptuntap.c
+++ b/ip/iptuntap.c
@@ -314,6 +314,7 @@ static void show_processes(const char *name)
!strcmp(name, value)) {
SPRINT_BUF(pname);
+ open_json_object(NULL);
if (get_task_name(pid, pname, sizeof(pname)))
print_string(PRINT_ANY, "name",
"%s", "<NULL>");
@@ -322,6 +323,7 @@ static void show_processes(const char *name)
"%s", pname);
print_uint(PRINT_ANY, "pid", "(%d)", pid);
+ close_json_object();
}
free(key);
next prev parent reply other threads:[~2025-11-22 0:10 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-21 4:25 [BUG] iproute2 - ip -d -j tuntap outputs malformed JSON Zhengyi Fu
2025-11-22 0:10 ` Stephen Hemminger [this message]
2025-11-22 15:49 ` Zhengyi Fu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251121161007.4c7ebae6@phoenix.local \
--to=stephen@networkplumber.org \
--cc=i@fuzy.me \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.