)]}'
{
  "commit": "035e720641f385e82c72b7b0a9e1d89e58cb5ed5",
  "tree": "a1d61b0eb9fb4b1863a26a21e4f3d0b862a19672",
  "parents": [
    "797ba56186260ef66d186deb200bd324ec1516c8"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue May 27 15:42:10 2025 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jun 02 13:27:41 2025 -0700"
  },
  "message": "Don\u0027t pass `parent` or `ad` to CRYPTO_EX_free\n\nWe used to pass the parent object to callbacks, but this isn\u0027t safe. The\nobject is in the middle of being destroyed, so the object\u0027s\ninvariants won\u0027t hold. We can\u0027t remove the parameters, but pass in NULL\ninstead.\n\nThis also has the side effect of making it possible to manage\nCRYPTO_EX_DATA lifetime in its destructor, because we won\u0027t need to find\nsome handle back to the parent object. It also means that defensively\nclearing fields in BIO destroy callbacks, while harmless, is more\nobviously unnecessary.\n\nUpdate-Note: CRYPTO_EX_free is no longer passed the parent object. We do\nnot expect any callers to be impacted. Callers that were impacted\nprobably had some object lifetime bug already.\n\nFixed: 412707574\nChange-Id: Idda889898a9eca3b59e3200ba1d5b4f2e62f2d37\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/79607\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8de2fa0aa27cad18c873c14ae8f0c81ebf8d4156",
      "old_mode": 33188,
      "old_path": "crypto/bio/bio.cc",
      "new_id": "f585d6803192bf6ea9e1091a6b935af59846dedb",
      "new_mode": 33188,
      "new_path": "crypto/bio/bio.cc"
    },
    {
      "type": "modify",
      "old_id": "3058cf4ce4853c34dbd70a231c8bfbe92ce7808c",
      "old_mode": 33188,
      "old_path": "crypto/dsa/dsa.cc",
      "new_id": "038052578b1e52f521adb40b2405d988202347c7",
      "new_mode": 33188,
      "new_path": "crypto/dsa/dsa.cc"
    },
    {
      "type": "modify",
      "old_id": "36fc34bacafa22c4771ab29037f630f1a0738e63",
      "old_mode": 33188,
      "old_path": "crypto/ex_data.cc",
      "new_id": "86a3d58ac1438a060440912acea8011262252b33",
      "new_mode": 33188,
      "new_path": "crypto/ex_data.cc"
    },
    {
      "type": "modify",
      "old_id": "3af5d9a0f5984281f2f095ce206b5d6e9af605a0",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/ec_key.cc.inc",
      "new_id": "d471e84536033ff0ee499ea1f8f63303cd4ee1e2",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/ec_key.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "771b6df9a40f6784f029cdb798d3e3167b234538",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/rsa/rsa.cc.inc",
      "new_id": "f1ba37b3a620e668e1f26e33927beee216671371",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/rsa/rsa.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "a78338c42af1959b41bd5f32d6c6dd40d6651e0b",
      "old_mode": 33188,
      "old_path": "crypto/internal.h",
      "new_id": "85e6d0b2e1fb2397cf6a5ade38f300fab3127b30",
      "new_mode": 33188,
      "new_path": "crypto/internal.h"
    },
    {
      "type": "modify",
      "old_id": "a1ad59f483744326b601543037e86c232f1a6e16",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_vfy.cc",
      "new_id": "87a714aac9abbbf2efdcaf1b4f4c07568e114ee9",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_vfy.cc"
    },
    {
      "type": "modify",
      "old_id": "465c53fab22dadd073f23684f31cd87b7ddc2d31",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_x509.cc",
      "new_id": "3e6c2a0d839cc620f235c851b128fc5446320ae7",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_x509.cc"
    },
    {
      "type": "modify",
      "old_id": "794d7a7e4411eb8004e59c94853b6a489a2a0a55",
      "old_mode": 33188,
      "old_path": "include/openssl/bio.h",
      "new_id": "b19607ac089f2ccf8eda685f8d21fa602cdeb4c4",
      "new_mode": 33188,
      "new_path": "include/openssl/bio.h"
    },
    {
      "type": "modify",
      "old_id": "55899df4f9de9633de8662cd61e4a043dd1e0cde",
      "old_mode": 33188,
      "old_path": "include/openssl/ex_data.h",
      "new_id": "a1679c89e97c404a1062bb3b399ffc40c18cdfb5",
      "new_mode": 33188,
      "new_path": "include/openssl/ex_data.h"
    },
    {
      "type": "modify",
      "old_id": "59e23239879ec8d3659accc516542cc486ba332e",
      "old_mode": 33188,
      "old_path": "ssl/ssl_credential.cc",
      "new_id": "95c1a761ca9e7df7874a5a756a2097eb309f5e82",
      "new_mode": 33188,
      "new_path": "ssl/ssl_credential.cc"
    },
    {
      "type": "modify",
      "old_id": "69f3fe2f5c193a30dd90368048804109db563da3",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.cc",
      "new_id": "c09c0715cc36841fa2bbd221238ea5427ed0c2cf",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "87d263b6741179b3fcdf4d884ad6b30da82ccd7d",
      "old_mode": 33188,
      "old_path": "ssl/ssl_session.cc",
      "new_id": "01a1211bd94fa790c8175778e9d2ef879e66742a",
      "new_mode": 33188,
      "new_path": "ssl/ssl_session.cc"
    }
  ]
}
