)]}'
{
  "commit": "8cab4e9bc73a66b64aae179db86493fd28c39b64",
  "tree": "89ff4afb8865dbc6426ee7f6197b8328d01a2cdb",
  "parents": [
    "36cc1390f265ce5f07a8841c106a6e1e7e021678"
  ],
  "author": {
    "name": "Emilia Kasper",
    "email": "emilia@openssl.org",
    "time": "Sat Mar 12 20:46:13 2016 +0100"
  },
  "committer": {
    "name": "Emilia Kasper",
    "email": "emilia@openssl.org",
    "time": "Sat Mar 12 21:47:01 2016 +0100"
  },
  "message": "Fix memory leak in library deinit\n\nENGINE_cleanup calls CRYPTO_free_ex_data and therefore,\nCRYPTO_cleanup_all_ex_data - which cleans up the method pointers - must\nrun after ENGINE_cleanup.\n\nAdditionally, don\u0027t needlessly initialize the EX_CALLBACKS stack during\ne.g. CRYPTO_free_ex_data. The only time this is actually needed is when\nreserving the first ex data index. Specifically, since sk_num returns -1\non NULL input, the rest of the code already handles a NULL method stack\ncorrectly.\n\nReviewed-by: Rich Salz \u003crsalz@openssl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "de734d30aaab0ae4c4558fa3c0d1a4bbb308cd1f",
      "old_mode": 33188,
      "old_path": "crypto/ex_data.c",
      "new_id": "4af0a9d5b3a9f262b5e2807067ce659c2f804a53",
      "new_mode": 33188,
      "new_path": "crypto/ex_data.c"
    },
    {
      "type": "modify",
      "old_id": "1fa5e894208e958b755095ebb97bf03bb7a34858",
      "old_mode": 33188,
      "old_path": "crypto/init.c",
      "new_id": "d50d7f19e8eb312746a24e72f3771d2c18a2d491",
      "new_mode": 33188,
      "new_path": "crypto/init.c"
    }
  ]
}
