)]}'
{
  "commit": "75f554d9739cb62a3fcdd0e8cafb9115cd853787",
  "tree": "6fc2bc476822d660e0e56b1863b93520b677aed9",
  "parents": [
    "36edf8d8503cfac4c7f75c8db8231096b3c73b9e"
  ],
  "author": {
    "name": "Corentin Wallez",
    "email": "cwallez@chromium.org",
    "time": "Thu Jun 17 16:04:29 2021 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Jun 17 16:04:29 2021 +0000"
  },
  "message": "WireCmd: disallow optional members with length\u003d\"otherMember\"\n\nThis didn\u0027t make sense since these members can be specified to have no\ndata by setting the length to 0.\n\n - Prevent uses of this patten by adding an assert in WireCmd.cpp\u0027s\n   generator.\n - Fix SetBindGroup dynamicOffset to not be optional but default to\n   nullptr instead.\n\nThis issues would cause a read of uninitialized pointers becaus the\ngenerator code looked like this:\n\n  SetBindGroupCmd cmd;\n  cmd.dynamicOffsetCount \u003d record.dynamicOffsetCount; // 1\n  bool has_dynamicOffset \u003d record.has_dynamicOffsetl // false\n  if (has_dynamicOffset) {\n    cmd.dynamicOffsets \u003d ...;\n  }\n  // Oh no! dynamicOffsets contains garbage even if dynamicOffsetCount\n  // is set to 1. dawn_native will happily read it.\n\nBug: chromium:1220036\nChange-Id: I5c468b639f671cef3be2fa64667a0bf114fc902b\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/54643\nAuto-Submit: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Stephen White \u003csenorblanco@chromium.org\u003e\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nReviewed-by: Stephen White \u003csenorblanco@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "79e5f4e23ce047d68c4b07efe84559b0bc5071f7",
      "old_mode": 33188,
      "old_path": "dawn.json",
      "new_id": "4151b95368cf86ceb6e1b8c860e5b71a1b5fad57",
      "new_mode": 33188,
      "new_path": "dawn.json"
    },
    {
      "type": "modify",
      "old_id": "4816ee122c78da7837411a4456d677360ea7aa9c",
      "old_mode": 33188,
      "old_path": "generator/templates/dawn_wire/WireCmd.cpp",
      "new_id": "2c372905b08fc2de6f8ea76f78660ed8b4b26c18",
      "new_mode": 33188,
      "new_path": "generator/templates/dawn_wire/WireCmd.cpp"
    }
  ]
}
