[opcodes/arm] Fix potential null pointer dereferences
authorLuis Machado <luis.machado@arm.com>
Wed, 2 Nov 2022 07:17:46 +0000 (07:17 +0000)
committerLuis Machado <luis.machado@arm.com>
Thu, 10 Nov 2022 01:12:17 +0000 (01:12 +0000)
  PR tdep/29598

  As pointed out in the bug ticket, we have a couple potential null pointer
  dereferencing situations. Harden those.

  Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29598

opcodes/arm-dis.c

index 47a0a38adecd7822a7d296e7603b3497c92cbaa8..8f29537a2ba98f87ce71085151095581d77487fd 100644 (file)
@@ -12484,6 +12484,10 @@ mapping_symbol_for_insn (bfd_vma pc, struct disassemble_info *info,
   bool found = false;
   bool can_use_search_opt_p = false;
 
+  /* Sanity check.  */
+  if (info == NULL)
+    return false;
+
   /* Default to DATA.  A text section is required by the ABI to contain an
      INSN mapping symbol at the start.  A data section has no such
      requirement, hence if no mapping symbol is found the section must
@@ -12497,7 +12501,7 @@ mapping_symbol_for_insn (bfd_vma pc, struct disassemble_info *info,
     type = MAP_ARM;
   struct arm_private_data *private_data;
 
-  if (info->private_data == NULL
+  if (info->private_data == NULL || info->symtab == NULL
       || info->symtab_size == 0
       || bfd_asymbol_flavour (*info->symtab) != bfd_target_elf_flavour)
     return false;