)]}'
{
  "commit": "b50b2e5026b56d40907f384e245cc1f7d5527d32",
  "tree": "9bad07e14e25e6d9bdfe4d3576e6bce7d3c95765",
  "parents": [
    "943987096f1a20d3e21a9b115b851d048b19ac7c"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue Feb 11 16:31:50 2025 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Feb 11 14:02:11 2025 -0800"
  },
  "message": "Fix up ClientHello parser errors\n\nBob pointed out that the previous CL didn\u0027t quiiiite move the errors\naround right. I looked at the ssl_parse_client_hello_with_trailing_data\ncalls but not the SSL_parse_client_hello calls. As a result, we doubled\nup some errors.\n\nI\u0027d also missed that we already have SSL_R_CLIENTHELLO_PARSE_FAILED.\nThat said, which error to use is a little interesting. Some codepaths\nused to use SSL_R_DECODE_ERROR and some used\nSSL_R_CLIENTHELLO_PARSE_FAILED. Further complicating things is that some\nClientHello error paths are unreachable because only the first time a\nClientHello is parsed matters. But we have the second ClientHello in HRR\nand inner ClientHellos to content with. (A TLS connection can have up to\nfour ClientHellos now!)\n\nI\u0027ve erred towards picking the more specific one, given this whole mess.\n\nUpdate-Note: The error when the server cannot parse the ClientHello is\nnow a bit more specific. This might be visible to server-specific\nlogging, but will not change what is sent over the wire.\n\nChange-Id: I64a4305968616a9f414d3c95fb4ffbd1cfdc4ecc\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/76147\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "db17a070f8097f38eacec69783a29af50514e584",
      "old_mode": 33188,
      "old_path": "ssl/extensions.cc",
      "new_id": "4e4dbe4ede79373b53d37a80630d2ab55afff798",
      "new_mode": 33188,
      "new_path": "ssl/extensions.cc"
    },
    {
      "type": "modify",
      "old_id": "b6331e87782b9256f08212c5d2ef55b9dd32d5a5",
      "old_mode": 33188,
      "old_path": "ssl/handshake.cc",
      "new_id": "58a24065ebc4cc2978fa866fa4d0240473671091",
      "new_mode": 33188,
      "new_path": "ssl/handshake.cc"
    },
    {
      "type": "modify",
      "old_id": "ff4e88a5af8c4343725e8810c1ed73a47b4dc361",
      "old_mode": 33188,
      "old_path": "ssl/handshake_server.cc",
      "new_id": "1d3619c3e970b0d291d877470c533dc6f788245b",
      "new_mode": 33188,
      "new_path": "ssl/handshake_server.cc"
    },
    {
      "type": "modify",
      "old_id": "81de0ee152793a652c02d56b625d30f37e90ead7",
      "old_mode": 33188,
      "old_path": "ssl/ssl_test.cc",
      "new_id": "2f482dfd77a2b7f1d09031cf50247906e314dbd7",
      "new_mode": 33188,
      "new_path": "ssl/ssl_test.cc"
    },
    {
      "type": "modify",
      "old_id": "71e6eb4e862be7ce292c1503399d59683bbf7ff2",
      "old_mode": 33188,
      "old_path": "ssl/test/runner/runner.go",
      "new_id": "459673bdbb5d9abc1dfb0b6c87dc11893839aa83",
      "new_mode": 33188,
      "new_path": "ssl/test/runner/runner.go"
    },
    {
      "type": "modify",
      "old_id": "d58d01c39660e5f3601c59bcc1430a65d9b45cfb",
      "old_mode": 33188,
      "old_path": "ssl/tls13_server.cc",
      "new_id": "1c92ea764b7bcf721f9768d6212bff2362c8621d",
      "new_mode": 33188,
      "new_path": "ssl/tls13_server.cc"
    }
  ]
}
