)]}'
{
  "commit": "8b68380077aacb8cda00964d865751c338e86c96",
  "tree": "cc26fe3eee75284a4f381a9c8c7aa5bbe6f70a97",
  "parents": [
    "9a41f7cd2da7b8989641ff22b014073b71e4c683"
  ],
  "author": {
    "name": "Derek Mauro",
    "email": "dmauro@google.com",
    "time": "Fri Feb 21 17:16:57 2025 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Feb 21 17:17:36 2025 -0800"
  },
  "message": "Fix a use-after-free bug in which the string passed to `AtLocation` may be\nreferenced after it is destroyed. While the string does live until the end of\nthe full statement, logging (previously occurred) in the destructor of the\n`LogMessage` which may be constructed before the temporary string (and thus\ndestroyed after the temporary string\u0027s destructor).\n\nThis change moves logging to occur inside the internal `Voidify`. This does not\naffect when logging occurs relative to any other observable, other than the\nfact that it runs later than any temporary destructors in the log statement.\n\nPiperOrigin-RevId: 729708145\nChange-Id: I9b90367d7a5f4ed3cf091d4d33756262acc03ec6\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a511f03c7e1a1e8077d13f4a5c6624d5a33f44af",
      "old_mode": 33188,
      "old_path": "absl/log/CMakeLists.txt",
      "new_id": "01e2b287082d8fb227a7119775895b14b77360d2",
      "new_mode": 33188,
      "new_path": "absl/log/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "594f86734b6bf5e3792fd920159fb55a3758249a",
      "old_mode": 33188,
      "old_path": "absl/log/internal/BUILD.bazel",
      "new_id": "d3f4a8f76126a093e78e87caafce2a281ed138e7",
      "new_mode": 33188,
      "new_path": "absl/log/internal/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "9dc15db4283dfec495238b0558a9d4f062c72974",
      "old_mode": 33188,
      "old_path": "absl/log/internal/conditions.h",
      "new_id": "97edf6588678334f835a49b98594dbedf10f58c5",
      "new_mode": 33188,
      "new_path": "absl/log/internal/conditions.h"
    },
    {
      "type": "modify",
      "old_id": "9e7722dac0f8a511150a01bcaee6d4f284b91776",
      "old_mode": 33188,
      "old_path": "absl/log/internal/log_message.cc",
      "new_id": "8dc5722abf2a708b778863c0a3912762f8bae210",
      "new_mode": 33188,
      "new_path": "absl/log/internal/log_message.cc"
    },
    {
      "type": "modify",
      "old_id": "4986e7e4a137e6a6d158878eea9142a370534312",
      "old_mode": 33188,
      "old_path": "absl/log/internal/log_message.h",
      "new_id": "8acc4a15eb92c660ff9a58877b53d355f11f2ee2",
      "new_mode": 33188,
      "new_path": "absl/log/internal/log_message.h"
    },
    {
      "type": "modify",
      "old_id": "973e91ab68625fa0c9a87d23cf57b4998a8c503a",
      "old_mode": 33188,
      "old_path": "absl/log/internal/nullstream.h",
      "new_id": "c87f9aaa550d7b7ebb5fc834527c2ece0ee0b27e",
      "new_mode": 33188,
      "new_path": "absl/log/internal/nullstream.h"
    },
    {
      "type": "modify",
      "old_id": "8f62da20a0483708f374fff00e49d6b9e9e212d1",
      "old_mode": 33188,
      "old_path": "absl/log/internal/voidify.h",
      "new_id": "f42859eba1472d36d1901bf1d093ffc8add6d901",
      "new_mode": 33188,
      "new_path": "absl/log/internal/voidify.h"
    },
    {
      "type": "modify",
      "old_id": "fc98e1f679eb73786e43b19df5f97ab31601bc26",
      "old_mode": 33188,
      "old_path": "absl/log/log_modifier_methods_test.cc",
      "new_id": "4cee0c03c2f375a50020801a22d65ddb1fde5fe7",
      "new_mode": 33188,
      "new_path": "absl/log/log_modifier_methods_test.cc"
    }
  ]
}
