)]}'
{
  "commit": "bb682b4d7f6cf8bf9b01d26ea5498b9cc5115c3b",
  "tree": "fffd280274440170f0cf06a385c045fcbaf0616c",
  "parents": [
    "3e57f2b957b4f04df02fd935b51975c73e57696f"
  ],
  "author": {
    "name": "Tejas Anil Nagmote",
    "email": "tejasnagmote520@gmail.com",
    "time": "Mon Aug 03 14:57:41 2026 +0530"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Aug 03 10:27:41 2026 +0100"
  },
  "message": "Fix use-after-free in CreateDefaultDisplayReporter (#2240) (#2265)\n\nCreateDefaultDisplayReporter() transfers ownership of the returned\nreporter to the caller, but cached that owning pointer in a\nfunction-local static. After the first RunSpecifiedBenchmarks() call\ndestroyed the reporter, a subsequent call returned the same, now\ndangling pointer, causing a heap-use-after-free in\nBenchmarkReporter::GetOutputStream().\n\nReturn std::unique_ptr\u003cBenchmarkReporter\u003e so the ownership transfer is\nexpressed in the type, and drop the static so every call returns a\nfresh reporter.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6d98aba5813e10a077c2067658f9101f719a421c",
      "old_mode": 33188,
      "old_path": "include/benchmark/benchmark_api.h",
      "new_id": "1bff47278c609fe5cef69723045e213f1e6c0ae1",
      "new_mode": 33188,
      "new_path": "include/benchmark/benchmark_api.h"
    },
    {
      "type": "modify",
      "old_id": "91280295e8201f7f6838fda4de204cca5ef26f5e",
      "old_mode": 33188,
      "old_path": "src/benchmark.cc",
      "new_id": "c7baa103d9b3f852915e6037922288e393f6743e",
      "new_mode": 33188,
      "new_path": "src/benchmark.cc"
    }
  ]
}
