)]}'
{
  "commit": "5fab28ccd7ddcfb06d4f9c5dab020622cfe80c1f",
  "tree": "997f65ddc5a791b854bb5cce52cbb43402aa7556",
  "parents": [
    "adc69f3ee2d6a5e431d13f62e86d7c887157c3e3"
  ],
  "author": {
    "name": "QUICHE team",
    "email": "quiche-dev@google.com",
    "time": "Tue May 10 12:08:49 2022 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue May 10 12:09:32 2022 -0700"
  },
  "message": "Fix a race condition in QUIC TLS ticket processing\n\nQUIC\u0027s TlsServerHandshaker class holds a non-owning pointer to a DecryptCallback object.  When shutting down, the handshaker makes a call through this non-owning pointer, which can race with other code which may be simultaneously deleting the callback, resulting in a use-after-free crash.\n\nThis CL solves the problem by switching to shared ownership of the callback.  This change is difficult to regression-test - the problem was uncovered by some in-progress changes to the LetoClient class which are not ready for review yet.\n\nProtected by Trivial change, not protected.\n\nPiperOrigin-RevId: 447795102\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ffa5fec21bff46c9f74874c04abac91f2fe1cc35",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/crypto/proof_source.h",
      "new_id": "f91b572043e43fce523937962c3bee353c582a00",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/crypto/proof_source.h"
    },
    {
      "type": "modify",
      "old_id": "3274fa569c40640deb4767bdd8ca9b8ddfd2c500",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/tls_server_handshaker.cc",
      "new_id": "c9781ccb583df2072b310f6374613ce0d8280e36",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/tls_server_handshaker.cc"
    },
    {
      "type": "modify",
      "old_id": "68abf73f1e5bd090be1018ef075c404ba24b74e3",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/tls_server_handshaker.h",
      "new_id": "05b63ae9663bd55dedc7f3151ce7958865382541",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/tls_server_handshaker.h"
    },
    {
      "type": "modify",
      "old_id": "b886dde967aadbd1e29c557bb3ce496465e53559",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/test_ticket_crypter.cc",
      "new_id": "dbdb2a9d35fc9b6bcadef968707d30c272a7a86e",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/test_ticket_crypter.cc"
    },
    {
      "type": "modify",
      "old_id": "8443099458209ee53ecc75062c4710d436ce730b",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/test_ticket_crypter.h",
      "new_id": "888bdef932db3e10cf815bcc4370b0b8c949dfb6",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/test_ticket_crypter.h"
    },
    {
      "type": "modify",
      "old_id": "aa1e65e88389097b926e63a6f7b110aa49fc440d",
      "old_mode": 33188,
      "old_path": "quiche/quic/tools/simple_ticket_crypter.cc",
      "new_id": "ad9fea1a09847cb9e5ef6342c5ee57d430cc9791",
      "new_mode": 33188,
      "new_path": "quiche/quic/tools/simple_ticket_crypter.cc"
    },
    {
      "type": "modify",
      "old_id": "f0395f0d1e809a55bca2b62d7eb833c054c6f54e",
      "old_mode": 33188,
      "old_path": "quiche/quic/tools/simple_ticket_crypter.h",
      "new_id": "b5ad16d6f96934086970b1125681277a2c1e877a",
      "new_mode": 33188,
      "new_path": "quiche/quic/tools/simple_ticket_crypter.h"
    }
  ]
}
