)]}'
{
  "commit": "94e2b2a770fc49e42c9baec80f4fb88f63391a4e",
  "tree": "b6dfb075714ab2e72afd8f18a42e556e2cddab87",
  "parents": [
    "0e4e9aa0a7727819a0b5b240617f8f4243c4c80f"
  ],
  "author": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Wed Jan 01 22:52:59 2025 +1030"
  },
  "committer": {
    "name": "Alan Modra",
    "email": "amodra@gmail.com",
    "time": "Wed Jan 01 22:52:59 2025 +1030"
  },
  "message": "readelf memory leaks\n\nThis fixes multiple readelf memory leaks:\n- The check functions used to validate separate debug info files\n  opened and read file data but didn\u0027t release the memory nor close\n  the file.\n- A string table was being re-read into a buffer, leaking the old\n  contents.\n- Decompressed section contents leaked.\n\n\t* dwarf.c (check_gnu_debuglink): Always call close_debug_file.\n\t(check_gnu_debugaltlink): Likewise.\n\t* readelf.c (process_section_headers): Don\u0027t read string_table\n\tagain if we already have it.\n\t(maybe_expand_or_relocate_section): Add decomp_buf param to\n\treturn new uncompressed buffer.\n\t(dump_section_as_strings, filedata-\u003estring_table): Free any\n\tuncompressed buffer.\n\t(process_file): Call close_debug_file rather than freeing\n\tvarious filedata components.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6c8a3c9832f32cca7928fce19c514d36b68cbc5b",
      "old_mode": 33188,
      "old_path": "binutils/dwarf.c",
      "new_id": "626efb2eb9a522c688accfd8800ba479650092cd",
      "new_mode": 33188,
      "new_path": "binutils/dwarf.c"
    },
    {
      "type": "modify",
      "old_id": "f8981f0dea8aa0f319af6936d011ac91ca67835d",
      "old_mode": 33188,
      "old_path": "binutils/readelf.c",
      "new_id": "4f8f879cf91fef8ffec6fb6429acf877d5d6c577",
      "new_mode": 33188,
      "new_path": "binutils/readelf.c"
    }
  ]
}
