]> git.baikalelectronics.ru Git - kernel.git/commit
tools: bpftool: Fix json dump crash on powerpc
authorJiri Olsa <jolsa@redhat.com>
Fri, 5 Jul 2019 12:10:31 +0000 (14:10 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 5 Jul 2019 21:50:38 +0000 (23:50 +0200)
commit4f34379a7566b0bf895ced6757ea9789284f939d
tree294e313612adbc94ce8a4ce936b74ac30a7d22fb
parent84b8abd54eb48dce6baa66577ba7a4b1df5272c0
tools: bpftool: Fix json dump crash on powerpc

Michael reported crash with by bpf program in json mode on powerpc:

  # bpftool prog -p dump jited id 14
  [{
        "name": "0xd00000000a9aa760",
        "insns": [{
                "pc": "0x0",
                "operation": "nop",
                "operands": [null
                ]
            },{
                "pc": "0x4",
                "operation": "nop",
                "operands": [null
                ]
            },{
                "pc": "0x8",
                "operation": "mflr",
  Segmentation fault (core dumped)

The code is assuming char pointers in format, which is not always
true at least for powerpc. Fixing this by dumping the whole string
into buffer based on its format.

Please note that libopcodes code does not check return values from
fprintf callback, but as per Jakub suggestion returning -1 on allocation
failure so we do the best effort to propagate the error.

Fixes: d7d4bf5b632c ("tools: bpftool: add JSON output for `bpftool prog dump jited *` command")
Reported-by: Michael Petlan <mpetlan@redhat.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
tools/bpf/bpftool/jit_disasm.c