• Luis Gerhorst's avatar
    tools: bpftool: Remove invalid \' json escape · c679bbd6
    Luis Gerhorst authored
    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 (\').
    
    Fixes: b66e907c ("tools: bpftool: copy JSON writer from iproute2 repository")
    Signed-off-by: default avatarLuis Gerhorst <gerhorst@cs.fau.de>
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Reviewed-by: default avatarQuentin Monnet <quentin@isovalent.com>
    Link: https://lore.kernel.org/bpf/20230227150853.16863-1-gerhorst@cs.fau.de
    c679bbd6
json_writer.c 6.64 KB