)]}'
{
  "commit": "1dcfefd8dd49e32a9880a79c8fbb9276eaade23c",
  "tree": "4fb4c56059471c311abf516c4066c0b538762eb1",
  "parents": [
    "e8fa604cdc98e42a6bc3c408f5a3428cb2b7c201"
  ],
  "author": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Wed Jul 01 10:15:30 2026 +0800"
  },
  "committer": {
    "name": "H.J. Lu",
    "email": "hjl.tools@gmail.com",
    "time": "Fri Jul 03 21:50:49 2026 +0800"
  },
  "message": "readelf: Update dynamic tag processing and validate section info\n\nCount DT_RELR relocations using dynamic tags when section header isn\u0027t\nused.  Ignore section sh_offset and sh_size if they are larger than file\nsize.\n\nOne side effect is that we now display\n\nreadelf: Warning: Ignore the out of range sh_offset value of 2199023261148 for section 17\nreadelf: Warning: Ignore the out of range sh_size value of 13 for section 17 with sh_offset value of 2199023261148\n...\n  [17] .fini             PROGBITS        00000000000015dc 000000 000000 00  AX  0   0  4\n...\n\ninstead of\n\n...\n  [17] .fini             PROGBITS        00000000000015dc 200000015dc 00000d 00  AX  0   0  4\n...\n\nand segfault.\n\nbinutils/\n\n\tPR binutils/34326\n\tPR binutils/34339\n\t* readelf.c (update_all_relocations): Skip if nentries \u003d\u003d 0.\n\t(validate_section_info): New.\n\t(get_32bit_section_headers): Call validate_section_info.\n\t(get_64bit_section_headers): Likewise.\n\t(process_relocs): Call count_relr_relocations for relocations\n\tfrom dynamic tags.  Skip if values in DT_RELENT/DT_RELAENT\n\tare larger than values in DT_RELSZ/DT_RELASZ.\n\t(process_got_section_contents): Skip if all_relocations_count\n\t\u003d\u003d 0.\n\nld/\n\tPR binutils/34339\n\t* testsuite/ld-x86-64/binutils.exp: Run PR binutils/34339 tests.\n\t* testsuite/ld-x86-64/got-2.s: New file.\n\t* testsuite/ld-x86-64/libgot-2.rd: Likewise.\n\nSigned-off-by: H.J. Lu \u003chjl.tools@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fe5a217801b4642b8d2f0517bcd61ffb2146028e",
      "old_mode": 33188,
      "old_path": "binutils/readelf.c",
      "new_id": "2826e0cf1950a5cd8ce94b24f1e1ef32c7e089b0",
      "new_mode": 33188,
      "new_path": "binutils/readelf.c"
    },
    {
      "type": "modify",
      "old_id": "cc466bdbc6d9b66f4a6e934d18b5f8c773c084be",
      "old_mode": 33188,
      "old_path": "ld/testsuite/ld-x86-64/binutils.exp",
      "new_id": "f257bbd2c71869f1a611b098a1fbf29c08d06b00",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/binutils.exp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d930447fd890df85a403f284eb463b016bbeae01",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/got-2.s"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1dc41c148059bd7f707267133790bcacadba2592",
      "new_mode": 33188,
      "new_path": "ld/testsuite/ld-x86-64/libgot-2.rd"
    }
  ]
}
