)]}'
{
  "commit": "4da7663b02bf05542830e85db6f74cf90daf1f49",
  "tree": "4f9cff33c44c8e57caefbd23c66a78649a001788",
  "parents": [
    "03454ba2a234197c961920f1bac37cc9f4cf3f54"
  ],
  "author": {
    "name": "Richard Levitte",
    "email": "levitte@openssl.org",
    "time": "Fri Apr 29 08:08:06 2022 +0200"
  },
  "committer": {
    "name": "Richard Levitte",
    "email": "levitte@openssl.org",
    "time": "Thu May 05 15:06:11 2022 +0200"
  },
  "message": "For child libctx / provider, don\u0027t count self-references in parent\n\nIn child library contexts, which contain child \"clones\" of the\nproviders the application has in store, one of these children will\nalways be the provider that creates the child library context; let\u0027s\ncall them self-refering child providers.\n\nFor these self-refering child providers, we don\u0027t increment the parent\nprovider reference count, nor do we free the parent provider, as those\nbecome self defeating and hinder the teardown and unloading process\nwhen the application cleans up.\n\nFor non self-refering child providers, we must retain this propagation\nof reference count to the parent, so that aren\u0027t torn down too early,\ni.e. when there\u0027s still a \"foreign\" reference (fetched algorithm).\n\nReviewed-by: Tomas Mraz \u003ctomas@openssl.org\u003e\nReviewed-by: Matt Caswell \u003cmatt@openssl.org\u003e\n(Merged from https://github.com/openssl/openssl/pull/18151)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "eb81c30a41d3fc18eabbeb2be29d273b09ca7224",
      "old_mode": 33188,
      "old_path": "crypto/provider_child.c",
      "new_id": "b1eadd5b19a8260b0760fb5d79364438282e157a",
      "new_mode": 33188,
      "new_path": "crypto/provider_child.c"
    }
  ]
}
