diff options
author | Jose E. Marchesi <jose.marchesi@oracle.com> | 2023-07-31 15:44:36 +0200 |
---|---|---|
committer | Jose E. Marchesi <jose.marchesi@oracle.com> | 2023-07-31 15:46:43 +0200 |
commit | 5b512234c874d5f82734dc6115765bc691c2c982 (patch) | |
tree | 82c58f58c4b413eb4b90c745e92942a8f4f14018 | |
parent | 6a6e82dc75afc3d6d72e925ad562fba8f297251c (diff) | |
download | gdb-5b512234c874d5f82734dc6115765bc691c2c982.zip gdb-5b512234c874d5f82734dc6115765bc691c2c982.tar.gz gdb-5b512234c874d5f82734dc6115765bc691c2c982.tar.bz2 |
bpf: opcodes: fix regression in BPF disassembler
This patch fixes a regression recently introduced in the BPF
disassembler, that was assuming an abfd was always available in
info->section->owner. Apparently this is not so in GDB, and therefore
https://sourceware.org/bugzilla/show_bug.cgi?id=30705.
Tested in bpf-unkonwn-none.
opcodes/ChangeLog:
2023-07-31 Jose E. Marchesi <jose.marchesi@oracle.com>
PR 30705
* bpf-dis.c (print_insn_bpf): Check that info->section->owner is
actually available before using it.
-rw-r--r-- | opcodes/ChangeLog | 6 | ||||
-rw-r--r-- | opcodes/bpf-dis.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 9d33da2..99f95c6 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2023-07-31 Jose E. Marchesi <jose.marchesi@oracle.com> + + PR 30705 + * bpf-dis.c (print_insn_bpf): Check that info->section->owner is + actually available before using it. + 2023-07-30 Jose E. Marchesi <jose.marchesi@oracle.com> * bpf-dis.c: Initialize asm_bpf_version to -1. diff --git a/opcodes/bpf-dis.c b/opcodes/bpf-dis.c index a8cb9e8..1b1a532 100644 --- a/opcodes/bpf-dis.c +++ b/opcodes/bpf-dis.c @@ -147,7 +147,7 @@ print_insn_bpf (bfd_vma pc, disassemble_info *info) If the user didn't explicitly specify an ISA version, then derive it from the CPU Version flag in the ELF header. A CPU version of 0 in the header means "latest version". */ - if (asm_bpf_version == -1) + if (asm_bpf_version == -1 && info->section && info->section->owner) { struct bfd *abfd = info->section->owner; Elf_Internal_Ehdr *header = elf_elfheader (abfd); |