)]}'
{
  "commit": "d94682dce5263e11bacd47e8d33e77c0315eac5c",
  "tree": "1fb6ccd386afa25e5b554e0223533eb658adefe6",
  "parents": [
    "21cb0744bb7210443cd3c40b98768ab4eacdf4f7"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sun May 14 17:10:18 2017 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Tue May 23 22:43:59 2017 +0000"
  },
  "message": "Remove ex_data\u0027s dup hook.\n\nThe only place it is used is EC_KEY_{dup,copy} and no one calls that\nfunction on an EC_KEY with ex_data. This aligns with functions like\nRSAPublicKey_dup which do not copy ex_data. The logic is also somewhat\nsubtle in the face of malloc errors (upstream\u0027s PR 3323).\n\nIn fact, we\u0027d even changed the function pointer signature from upstream,\nso BoringSSL-only code is needed to pass this pointer in anyway. (I\nhaven\u0027t switched it to CRYPTO_EX_unused because there are some callers\nwhich pass in an implementation anyway.)\n\nNote, in upstream, the dup hook is also used for SSL_SESSIONs when those\nare duplicated (for TLS 1.2 ticket renewal or TLS 1.3 resumption). Our\ninterpretation is that callers should treat those SSL_SESSIONs\nequivalently to newly-established ones. This avoids every consumer\nproviding a dup hook and simplifies the interface.\n\n(I\u0027ve gone ahead and removed the TODO(fork). I don\u0027t think we\u0027ll be able\nto change this API. Maybe introduce a new one, but it may not be worth\nit? Then again, this API is atrocious... I\u0027ve never seen anyone use argl\nand argp even.)\n\nBUG\u003d21\n\nChange-Id: I6c9e9d5a02347cb229d4c084c1e85125bd741d2b\nReviewed-on: https://boringssl-review.googlesource.com/16344\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: Adam Langley \u003cagl@google.com\u003e\nCQ-Verified: CQ bot account: commit-bot@chromium.org \u003ccommit-bot@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "33c36f31fa557df3e0f39b3e6b8cef86a14b4e82",
      "old_mode": 33188,
      "old_path": "crypto/dh/dh.c",
      "new_id": "c884ae34e03f9dda0c955d73699e307abd6aeba8",
      "new_mode": 33188,
      "new_path": "crypto/dh/dh.c"
    },
    {
      "type": "modify",
      "old_id": "a0d45bf776ad40c552caeafa922cecc7a4860595",
      "old_mode": 33188,
      "old_path": "crypto/dsa/dsa.c",
      "new_id": "58126c3747f3736cedc4b4927c90caadd9c5d7b0",
      "new_mode": 33188,
      "new_path": "crypto/dsa/dsa.c"
    },
    {
      "type": "modify",
      "old_id": "8555e231332a86d1914ecfab8d5bfc892e62fdc5",
      "old_mode": 33188,
      "old_path": "crypto/ex_data.c",
      "new_id": "27b9a516618514e9c5926203eacdd6c8cc359afa",
      "new_mode": 33188,
      "new_path": "crypto/ex_data.c"
    },
    {
      "type": "modify",
      "old_id": "6663eaf372a7c20da54556a5b9195279456199d8",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/ec/ec_key.c",
      "new_id": "67b92a72e2dc35479a0924ab22e2ed6f85cebff2",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/ec/ec_key.c"
    },
    {
      "type": "modify",
      "old_id": "ce04bfccf5a2520bed28dce621144f94e6ed2d9f",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/rsa/rsa.c",
      "new_id": "21dcacdc49f8d0e87224b1ae6570aa589f8fcf31",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/rsa/rsa.c"
    },
    {
      "type": "modify",
      "old_id": "21a16758a75e8b5426916939b2b508ea49f80017",
      "old_mode": 33188,
      "old_path": "crypto/internal.h",
      "new_id": "28ec3eeb8c754d6fde80021de8f2fcc8c4284b80",
      "new_mode": 33188,
      "new_path": "crypto/internal.h"
    },
    {
      "type": "modify",
      "old_id": "27b58f45b34533bac2649acbd3353c2440eba890",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_vfy.c",
      "new_id": "c2cdd38f3f46f883342891bcb7880dd5aaf02f8f",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_vfy.c"
    },
    {
      "type": "modify",
      "old_id": "15118d29963c2904e0a27c0cafc1ed7f3f02068c",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_x509.c",
      "new_id": "9edfa0051908610f49b1ec5b1c09f4f1bb4380d9",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_x509.c"
    },
    {
      "type": "modify",
      "old_id": "ed2396d1ef55d6e3afa81929831908c65dfb8df5",
      "old_mode": 33188,
      "old_path": "include/openssl/dh.h",
      "new_id": "9f92a0623d38a1d4b19eecbdff03ef8117572780",
      "new_mode": 33188,
      "new_path": "include/openssl/dh.h"
    },
    {
      "type": "modify",
      "old_id": "29888778a7d90941c4e6ed7ef02af338e717a356",
      "old_mode": 33188,
      "old_path": "include/openssl/dsa.h",
      "new_id": "afe02916e9f70ff677837d1fafbf801b354b1946",
      "new_mode": 33188,
      "new_path": "include/openssl/dsa.h"
    },
    {
      "type": "modify",
      "old_id": "2186f02c6f497b7162cc1bfa5e0e10b1866d61ec",
      "old_mode": 33188,
      "old_path": "include/openssl/ec_key.h",
      "new_id": "3aeaa7805495aa3e995bdc91c48ab64514d969fb",
      "new_mode": 33188,
      "new_path": "include/openssl/ec_key.h"
    },
    {
      "type": "modify",
      "old_id": "e78e0703ad96ca1944740c6ea2790387ea6c0751",
      "old_mode": 33188,
      "old_path": "include/openssl/ex_data.h",
      "new_id": "5d1a45c5274ffa443b38687442a63bdcb224af8c",
      "new_mode": 33188,
      "new_path": "include/openssl/ex_data.h"
    },
    {
      "type": "modify",
      "old_id": "c4d7f538a06e76eaef3200b15f018796c4c1335a",
      "old_mode": 33188,
      "old_path": "include/openssl/rsa.h",
      "new_id": "caf4a428f627257d014ca29c9c655fb127185b60",
      "new_mode": 33188,
      "new_path": "include/openssl/rsa.h"
    },
    {
      "type": "modify",
      "old_id": "581da2ab2c1a9b78ac519e16f700acd0cb4498be",
      "old_mode": 33188,
      "old_path": "include/openssl/ssl.h",
      "new_id": "55e53dac4fb594b0f990dc8f566c4c77ccd972f3",
      "new_mode": 33188,
      "new_path": "include/openssl/ssl.h"
    },
    {
      "type": "modify",
      "old_id": "52e5df0e5e5630845c6282c32d980b6d4c04d6be",
      "old_mode": 33188,
      "old_path": "include/openssl/x509.h",
      "new_id": "f4160456f4b6853d076b6c80908989780406f752",
      "new_mode": 33188,
      "new_path": "include/openssl/x509.h"
    },
    {
      "type": "modify",
      "old_id": "90a9dd69570a09db0651e62d364f6cdd9c9068e5",
      "old_mode": 33188,
      "old_path": "include/openssl/x509_vfy.h",
      "new_id": "85aa1f92ba3106dab3bc1270759dadba12545cb3",
      "new_mode": 33188,
      "new_path": "include/openssl/x509_vfy.h"
    },
    {
      "type": "modify",
      "old_id": "bf2b5778461f62d257dae26ebd31f60bb00cda3f",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.c",
      "new_id": "b3e397d12828be7ed020be2d0123318808832799",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.c"
    },
    {
      "type": "modify",
      "old_id": "05ae05973d78c6f04605eb38c27fa73cbff30aed",
      "old_mode": 33188,
      "old_path": "ssl/ssl_session.c",
      "new_id": "b105cd015958ca48667b82013dac52d3bddbd2e1",
      "new_mode": 33188,
      "new_path": "ssl/ssl_session.c"
    }
  ]
}
