)]}'
{
  "commit": "ffb80509b93c6d9f537f6b3f8136e16bffc8c6cf",
  "tree": "a786b9ba4a04376aff320fba704f3669e98d3ca3",
  "parents": [
    "890c201d4ac9c345c304d646365fe077cf2b60c1"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Thu Feb 09 11:11:36 2023 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Feb 16 18:29:07 2023 +0000"
  },
  "message": "Replace the union inside EVP_PKEY with void*.\n\nThe union isn\u0027t actually providing type-safety: nothing checks that we\naccess the correct arm of the union, and it has a void* arm anyway.\nInstead, it\u0027s just adding some strict aliasing risk by relying on\ntype-punning: we usually write to the pointer as void*, via\nEVP_PKEY_assign, but then we read from it as the underlying type.\n\nThis is allowed in C, but not in C++. And even in C, while that is\nallowed, if we ever wrote \u0026pkey-\u003epkey.rsa, it would suddenly be a strict\naliasing violation. Just use a void*, which means we don\u0027t type-pun\npointer types against each other.\n\nWhile I\u0027m here, I made the free callbacks for EVP_PKEYs also NULL the\npointer. The one caller also NULLs it, so its fine, but some did and\nsome didn\u0027t do it, and this seems prudent.\n\nBug: 301\nChange-Id: I74c76ed3984527df66f64bb2d397af44f63920bd\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/57106\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "39e40fd20c8d8c6d1ead989abca37d4ff1a4c12e",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp.c",
      "new_id": "8383d2e0a982a9115d4d89ea3085498eaafc961c",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp.c"
    },
    {
      "type": "modify",
      "old_id": "da0998168f42bd781c58a07d22b3812c61dc32ea",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp_asn1.c",
      "new_id": "f270c3e773081ae040b7fe1a21935c8794a0ebb7",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "09f15aef4af19c746ce9787f4f2b397302137d0a",
      "old_mode": 33188,
      "old_path": "crypto/evp/internal.h",
      "new_id": "71f0f954a4aeeed7bbccdb92cbad3a51528defda",
      "new_mode": 33188,
      "new_path": "crypto/evp/internal.h"
    },
    {
      "type": "modify",
      "old_id": "cd787dd54122de9b3d13bffb0709f5e98d0a664d",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_dsa_asn1.c",
      "new_id": "8486e282e10a68112be2988544b4855eaa73299f",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_dsa_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "ddb64a421570f9306c2021819f7af9583a7d381b",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ec.c",
      "new_id": "c9f26cb00ce60e7a44761aaf9c35bcbfb1016fa1",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ec.c"
    },
    {
      "type": "modify",
      "old_id": "be51277b838fde427796606fae1e3205999d82fe",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ec_asn1.c",
      "new_id": "2659100f2e87c79393bbda0fac2aee2bbf06382c",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ec_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "cd787a1526c8b76881e9f63dfb6632075588d048",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ed25519.c",
      "new_id": "647ea05e603edcb4b16b732685ea9c2c7f0eeba0",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ed25519.c"
    },
    {
      "type": "modify",
      "old_id": "c3f88850fe2e9d16828f8018d48e8c7bd7d6fa2f",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ed25519_asn1.c",
      "new_id": "3b8f27fd65e56ff8d4c5a27f1facc04d84983166",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ed25519_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "7872a922cb82e0c3d8a40e87094334ab1a1513c3",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_rsa.c",
      "new_id": "dc224500c2aa029f1303d21a197248cf7f2fe687",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_rsa.c"
    },
    {
      "type": "modify",
      "old_id": "cfaf69472f80ecaa2a7f07611aaad0d7356fb898",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_rsa_asn1.c",
      "new_id": "dd64731be4c643db6f7596893336b91665a96125",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_rsa_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "75ef6e10a79e665dcc2732848aa1608e557a323a",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_x25519.c",
      "new_id": "6218943e0fe65ffafce9a9754b2a1fe21ea840f2",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_x25519.c"
    },
    {
      "type": "modify",
      "old_id": "3573f240c3ba50966a0cf987d3387203b1c74c6f",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_x25519_asn1.c",
      "new_id": "bf98427c7851bda24c3a7e60220df09db7bb4dd0",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_x25519_asn1.c"
    },
    {
      "type": "modify",
      "old_id": "dd38bd74d6285631fb33eead61f177800869d2da",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/service_indicator/service_indicator.c",
      "new_id": "b1ea28e80c782c6254fd8de65b028d9391b1b7fb",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/service_indicator/service_indicator.c"
    }
  ]
}
