)]}'
{
  "commit": "450552570acf074294a742faa3bac7ac6ce4fd0f",
  "tree": "379e07b3ad7cc2729e11c52bb0ba1e6c107ce39a",
  "parents": [
    "b0d415110b8d53c091511ad2b6ae8aa56b83aab5"
  ],
  "author": {
    "name": "ftsui",
    "email": "ftsui@google.com",
    "time": "Mon Aug 07 12:11:24 2023 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Aug 07 19:11:24 2023 +0000"
  },
  "message": "Fix use-after-free crash in glfw embedder (#44358)\n\nWhen setting up the paths to assets and ICU data, we were previously returning the underlying char* data in a temporary string returned by `std::filesystem::path::string()`. Since the return value of `string()` is never stored, there\u0027s no guarantee that the underlying data pointer is still valid later in the function. By storing the string in a local whose lifetime exceeds that of the running engine instance, we guarantee the string isn\u0027t freed until after the Flutter app terminates.\r\n\r\n[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d50871bd6f14c27ee489b11c66c43bd3f011e40e",
      "old_mode": 33188,
      "old_path": "shell/platform/glfw/flutter_glfw.cc",
      "new_id": "55968f0e2667855152cceb96f66ed89992b00f91",
      "new_mode": 33188,
      "new_path": "shell/platform/glfw/flutter_glfw.cc"
    }
  ]
}
