linux-stable/tools/bpf/bpftool
Krzesimir Nowak 1884c06657 tools: bpftool: Fix JSON output when lookup fails
In commit 9a5ab8bf1d ("tools: bpftool: turn err() and info() macros
into functions") one case of error reporting was special cased, so it
could report a lookup error for a specific key when dumping the map
element. What the code forgot to do is to wrap the key and value keys
into a JSON object, so an example output of pretty JSON dump of a
sockhash map (which does not support looking up its values) is:

[
    "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x00"
    ],
    "value": {
        "error": "Operation not supported"
    },
    "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x01"
    ],
    "value": {
        "error": "Operation not supported"
    }
]

Note the key-value pairs inside the toplevel array. They should be
wrapped inside a JSON object, otherwise it is an invalid JSON. This
commit fixes this, so the output now is:

[{
        "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x00"
        ],
        "value": {
            "error": "Operation not supported"
        }
    },{
        "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x01"
        ],
        "value": {
            "error": "Operation not supported"
        }
    }
]

Fixes: 9a5ab8bf1d ("tools: bpftool: turn err() and info() macros into functions")
Cc: Quentin Monnet <quentin.monnet@netronome.com>
Signed-off-by: Krzesimir Nowak <krzesimir@kinvolk.io>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-06-05 22:08:26 +02:00
..
bash-completion bpftool: fix indendation in bash-completion/bpftool 2019-04-25 21:45:14 -07:00
Documentation bpftool/docs: add btf sub-command documentation 2019-04-25 21:45:14 -07:00
.gitignore bpftool: exclude bash-completion/bpftool from .gitignore pattern 2019-05-04 23:43:57 -07:00
btf.c bpftool: fix BTF raw dump of FWD's fwd_kind 2019-05-17 14:21:29 +02:00
btf_dumper.c bpf: bpftool support for dumping data/bss/rodata sections 2019-04-09 17:05:47 -07:00
cfg.c tools: bpftool: teach cfg code about JMP32 2019-01-26 13:33:01 -08:00
cfg.h tools: bpftool: replace Netronome boilerplate with SPDX license headers 2018-12-13 12:08:44 +01:00
cgroup.c bpftool: Support sysctl hook 2019-04-16 19:45:47 -07:00
common.c tools: bpftool: fix crash with un-owned prog arrays 2019-01-28 23:59:46 +01:00
feature.c bpftool: feature probing, change default action 2019-01-24 10:47:52 +01:00
jit_disasm.c tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
json_writer.c tools: bpftool: Cleanup license mess 2019-01-18 15:26:54 -08:00
json_writer.h tools: bpftool: Cleanup license mess 2019-01-18 15:26:54 -08:00
main.c bpftool: add ability to dump BTF types 2019-04-25 21:45:14 -07:00
main.h bpftool: add ability to dump BTF types 2019-04-25 21:45:14 -07:00
Makefile tools/bpf: properly account for libbfd variations 2019-01-16 00:53:48 +01:00
map.c tools: bpftool: Fix JSON output when lookup fails 2019-06-05 22:08:26 +02:00
map_perf_ring.c tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
net.c bpftool: show flow_dissector attachment status 2019-04-25 23:49:06 +02:00
netlink_dumper.c tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
netlink_dumper.h tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
perf.c tools: bpftool: dual license all files 2018-12-13 12:08:44 +01:00
prog.c tools/bpftool: move set_max_rlimit() before __bpf_object__open_xattr() 2019-05-16 11:44:50 -07:00
tracelog.c tools: bpftool: add an option to prevent auto-mount of bpffs, tracefs 2018-12-18 14:47:17 +01:00
xlated_dumper.c bpf: implement lookup-free direct value access for maps 2019-04-09 17:05:46 -07:00
xlated_dumper.h tools: bpftool: replace Netronome boilerplate with SPDX license headers 2018-12-13 12:08:44 +01:00