]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
json: do not escape single quotes
authorAndrea Claudi <aclaudi@redhat.com>
Thu, 3 Nov 2022 17:39:25 +0000 (18:39 +0100)
committerStephen Hemminger <stephen@networkplumber.org>
Thu, 3 Nov 2022 18:30:20 +0000 (11:30 -0700)
ECMA-404 standard does not include single quote character among the json
escape sequences. This means single quotes does not need to be escaped.

Indeed the single quote escape produces an invalid json output:

$ ip link add "john's" type dummy
$ ip link show "john's"
9: john's: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether c6:8e:53:f6:a3:4b brd ff:ff:ff:ff:ff:ff
$ ip -j link | jq .
parse error: Invalid escape at line 1, column 765

This can be fixed removing the single quote escape in jsonw_puts.
With this patch in place:

$ ip -j link | jq .[].ifname
"lo"
"john's"

Fixes: fcc16c2287bf ("provide common json output formatter")
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
lib/json_writer.c

index 88c5eb888225438e6f707349eac0fac2e9f00809..2f3936c2821d1811ee70444b60fb3def82cd9ba0 100644 (file)
@@ -80,9 +80,6 @@ static void jsonw_puts(json_writer_t *self, const char *str)
                case '"':
                        fputs("\\\"", self->out);
                        break;
-               case '\'':
-                       fputs("\\\'", self->out);
-                       break;
                default:
                        putc(*str, self->out);
                }