Re: [PATCH] tools: bpftool: remove invalid \' json escape

From: Quentin Monnet
Date: Mon Feb 27 2023 - 10:40:44 EST


2023-02-27 16:08 UTC+0100 ~ Luis Gerhorst <gerhorst@xxxxxxxxx>
> RFC8259 ("The JavaScript Object Notation (JSON) Data Interchange
> Format") only specifies \", \\, \/, \b, \f, \n, \r, and \r as valid
> two-character escape sequences. This does not include \', which is not
> required in JSON because it exclusively uses double quotes as string
> separators.
>
> Solidus (/) may be escaped, but does not have to. Only reverse
> solidus (\), double quotes ("), and the control characters have to be
> escaped. Therefore, with this fix, bpftool correctly supports all valid
> two-character escape sequences (but still does not support characters
> that require multi-character escape sequences).
>
> Witout this fix, attempting to load a JSON file generated by bpftool
> using Python 3.10.6's default json.load() may fail with the error
> "Invalid \escape" if the file contains the invalid escaped single
> quote (\').
>
> Signed-off-by: Luis Gerhorst <gerhorst@xxxxxxxxx>

Fixes: b66e907cfee2 ("tools: bpftool: copy JSON writer from iproute2
repository")

I see this escape was similarly removed from iproute2's version of the
file [0]. Thanks!

Reviewed-by: Quentin Monnet <quentin@xxxxxxxxxxxxx>

[0]
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/commit/lib/json_writer.c?id=49c63bc775d610c3dfd3db0d6501ac29c519967f