)]}'
{
  "commit": "ea91b4a80518d37dc7132cd5d4d565caef6b232a",
  "tree": "1379c4bb11096e4d8996a8b0f2db8f7586dab3cd",
  "parents": [
    "13eb1a1662db41fa37a6e7f703b62f225727686e"
  ],
  "author": {
    "name": "Derek Mauro",
    "email": "dmauro@google.com",
    "time": "Thu Jul 09 13:35:51 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Jul 09 13:36:57 2026 -0700"
  },
  "message": "Fix double-free in absl::StatusOr\u003cT\u003e::emplace when value constructor throws\n\nWhen `emplace()` is called on an `ok()` `StatusOr\u003cT\u003e`, it calls\n`Clear()` to destroy the existing object. If the new value\u0027s\nconstructor throws an exception, `status_` was previously left as\n`OkStatus`. This caused `~StatusOrData()` to erroneously destroy the\nuninitialized memory again during stack unwinding.\n\nThis CL fixes the issue by temporarily setting `status_` to an\ninternal non-ok state (using the zero-allocation inline\nrepresentation) before calling `MakeValue()`, restoring it to\n`OkStatus` only if construction succeeds.\n\nPiperOrigin-RevId: 945290296\nChange-Id: I17111c161f9d3d9f44ae014c49ab76960c7efc7b\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d2892c5bfeb5bdd354f0e0855569f1a500268fdb",
      "old_mode": 33188,
      "old_path": "absl/status/internal/status_internal.h",
      "new_id": "59ce36a92c630a7486460931dbfa29dbcd4483bc",
      "new_mode": 33188,
      "new_path": "absl/status/internal/status_internal.h"
    },
    {
      "type": "modify",
      "old_id": "faed05ef37be088c22ca9b93f7564f04a23258f1",
      "old_mode": 33188,
      "old_path": "absl/status/status.h",
      "new_id": "0b39b9bc93bba5346ff8afab46f5fd688c38046d",
      "new_mode": 33188,
      "new_path": "absl/status/status.h"
    },
    {
      "type": "modify",
      "old_id": "ed34bb877841b8b03c98d6a4de6ab496f64def39",
      "old_mode": 33188,
      "old_path": "absl/status/statusor.h",
      "new_id": "cabfd661e462eab0d9c0886f26183481d2ac0ca5",
      "new_mode": 33188,
      "new_path": "absl/status/statusor.h"
    },
    {
      "type": "modify",
      "old_id": "2205acf4736c865750a59e5389e5736289a5b8a4",
      "old_mode": 33188,
      "old_path": "absl/status/statusor_test.cc",
      "new_id": "d03e8be8dd414d41c6a1974417bad8c26b9b8639",
      "new_mode": 33188,
      "new_path": "absl/status/statusor_test.cc"
    }
  ]
}
