)]}'
{
  "commit": "4b738eecc008099574fb8263b2e1fac758eedf02",
  "tree": "92a8a586ea2303c47967c85ae2000a08f6d1cae6",
  "parents": [
    "8b99ca44515b2b56f1492786e23522e4abbe8a96"
  ],
  "author": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Thu Oct 30 16:26:57 2025 +1030"
  },
  "committer": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Thu Oct 30 16:26:57 2025 +1030"
  },
  "message": "Sanity check elf_sym_hashes indexing\n\nI\u0027m a little surprised we haven\u0027t already had fuzzing reports of\nindexing off the end of sym_hashes.  The idea here is to preempt such\nbugs.  One wrinkle is that ppc64 can\u0027t leave a zero symtab_hdr when\nsetting up sym_hashes for the fake stub bfd.\n\n\t* elf-bfd.h (struct elf_reloc_cookie): Add \"num_sym\".\n\t(_bfd_elf_get_link_hash_entry): Update declaration.\n\t* elf-eh-frame.c (find_merged_cie): Sanity check reloc symbol\n\tindex.\n\t* elf64-ppc.c (use_global_in_relocs): Fake up symtab_hdr for\n\tstub bfd.\n\t* elflink.c (_bfd_elf_get_link_hash_entry): Add \"num_sym\"\n\tparam.  Check symndx against it.  Update all calls.\n\t(set_symbol_value): Add \"num_sym\" param and update all calls.\n\t(elf_link_input_bfd): Add \"num_syms\" var and use for above.\n\t(init_reloc_cookie): Set \"cookie-\u003enum_syms\".\n\t* elf64-x86-64.c (elf_x86_64_scan_relocs): Pass symtab number\n\tof entries to _bfd_elf_get_link_hash_entry.\n\t* elfxx-x86.c (_bfd_x86_elf_check_relocs): Likewise.\n\t(_bfd_x86_elf_link_relax_section): Likewise.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e51bfcf63603ee9f613583cbb00252f43deb5255",
      "old_mode": 33188,
      "old_path": "bfd/elf-bfd.h",
      "new_id": "372203dd33cbd7296261326b771ac84ee8052b88",
      "new_mode": 33188,
      "new_path": "bfd/elf-bfd.h"
    },
    {
      "type": "modify",
      "old_id": "97ba1a3dce69db0210541b82b17c15be062abf91",
      "old_mode": 33188,
      "old_path": "bfd/elf-eh-frame.c",
      "new_id": "0212523cc79d36f15a23435462def52344468742",
      "new_mode": 33188,
      "new_path": "bfd/elf-eh-frame.c"
    },
    {
      "type": "modify",
      "old_id": "b706cf4d438c36576cda47d0fdefadf448fca9b7",
      "old_mode": 33188,
      "old_path": "bfd/elf64-ppc.c",
      "new_id": "205cf1511cbb68a709167ac80452043ad17c32cd",
      "new_mode": 33188,
      "new_path": "bfd/elf64-ppc.c"
    },
    {
      "type": "modify",
      "old_id": "f2a172662a524e4bdf6600927bec2610aaf649a5",
      "old_mode": 33188,
      "old_path": "bfd/elf64-x86-64.c",
      "new_id": "a4a5ebf595e7092d30fb9431a621741aa5f21e2d",
      "new_mode": 33188,
      "new_path": "bfd/elf64-x86-64.c"
    },
    {
      "type": "modify",
      "old_id": "989a7a0a6afec7bf8a6202313de61ba0b656044f",
      "old_mode": 33188,
      "old_path": "bfd/elflink.c",
      "new_id": "0ea974d45ce5e62b4eb41570b2b6611e25b8195f",
      "new_mode": 33188,
      "new_path": "bfd/elflink.c"
    },
    {
      "type": "modify",
      "old_id": "cffec0f5aaba5817bcc332a7a531b3b33f3f529d",
      "old_mode": 33188,
      "old_path": "bfd/elfxx-x86.c",
      "new_id": "7a54722bd27535aa8eca11cc7d6950c887a8b4f1",
      "new_mode": 33188,
      "new_path": "bfd/elfxx-x86.c"
    }
  ]
}
