)]}'
{
  "commit": "93cef628c7344542df044b5c1e5aa1dc6460f758",
  "tree": "444ab9f590d63a9602e87af0481daf376fc8cfcb",
  "parents": [
    "bd6f41c308fb011c2f2322cbed00d067657b0916"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Sat Jun 13 12:49:02 2026 -0400"
  },
  "committer": {
    "name": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jun 16 07:32:35 2026 -0700"
  },
  "message": "Fix strict aliasing violations in crypto/asn1 from ASN1_VALUE*\n\nThe table-based parser constantly needs to load pointers without knowing\ntheir type. At one point I\u0027d thought we could embed load/store thunks\ninto the table, but this is unnecessary. We can just load/store through\nmemcpy. This is horrific, but should work.\n\nThis sidesteps the issue documented in `ASN1_item_d2i`, because we don\u0027t\nactually have to pick one or the other.\n\nNB: Although these violations are fixed, BoringSSL still recommends\nconsumers build with strict aliasing disabled. There are likely more\nviolations we are unaware of. Before revisiting this decision, we would\nneed Clang\u0027s TypeSanitizer, some equivalent, to become robust enough to\nrun in CI and complete enough to cover all strict aliasing assumptions\nour compilers might make.\n\nBug: 42290308\nChange-Id: Icb7812cee921202c4175f841ea49e8254b0ba95a\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/97160\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "76badb2f983173001f7b7759157e3ff76d17d447",
      "old_mode": 33188,
      "old_path": "crypto/asn1/internal.h",
      "new_id": "82308078f270be8b2c58d9aa4f9ae82a826dc926",
      "new_mode": 33188,
      "new_path": "crypto/asn1/internal.h"
    },
    {
      "type": "modify",
      "old_id": "f03e9e7609328420b7419da51bb221a3dce154e1",
      "old_mode": 33188,
      "old_path": "crypto/asn1/tasn_dec.cc",
      "new_id": "fbac8c40ff74f8193fc0941fdcaff978bbebca68",
      "new_mode": 33188,
      "new_path": "crypto/asn1/tasn_dec.cc"
    },
    {
      "type": "modify",
      "old_id": "2a779a9f74f70e59cca9f83c3be5501a05cbf614",
      "old_mode": 33188,
      "old_path": "crypto/asn1/tasn_enc.cc",
      "new_id": "ae83044aa6266481c99ec5481a5d74f30b4b17eb",
      "new_mode": 33188,
      "new_path": "crypto/asn1/tasn_enc.cc"
    },
    {
      "type": "modify",
      "old_id": "b6f5ead733b1348a5994dae9b311c293752cc9a9",
      "old_mode": 33188,
      "old_path": "crypto/asn1/tasn_fre.cc",
      "new_id": "acaec9e6f2503f2d4577dd8b0b1ce272f6831a48",
      "new_mode": 33188,
      "new_path": "crypto/asn1/tasn_fre.cc"
    },
    {
      "type": "modify",
      "old_id": "d97afb82f30063d3a7d34d518862b5e61e9d7d33",
      "old_mode": 33188,
      "old_path": "crypto/asn1/tasn_new.cc",
      "new_id": "65915e4ca4265d81407408a24182911e8569571a",
      "new_mode": 33188,
      "new_path": "crypto/asn1/tasn_new.cc"
    },
    {
      "type": "modify",
      "old_id": "c893c1915d88ed4f0bdf191a1091e681594f146b",
      "old_mode": 33188,
      "old_path": "crypto/asn1/tasn_utl.cc",
      "new_id": "6d3320f497c8d7619f4e0f147b8950eda9b20106",
      "new_mode": 33188,
      "new_path": "crypto/asn1/tasn_utl.cc"
    },
    {
      "type": "modify",
      "old_id": "682a1e242cc663b6dced5d07a916beb58f8932e2",
      "old_mode": 33188,
      "old_path": "crypto/compiler_test.cc",
      "new_id": "58c926d129691ba8fb4254774c39ad38c8edc7cb",
      "new_mode": 33188,
      "new_path": "crypto/compiler_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f14891147a7d892ef5435a6c957c919a929776aa",
      "old_mode": 33188,
      "old_path": "crypto/x509/rsa_pss.cc",
      "new_id": "352e3a9328152649f9456d1593fbf784ddf592aa",
      "new_mode": 33188,
      "new_path": "crypto/x509/rsa_pss.cc"
    },
    {
      "type": "modify",
      "old_id": "6c3995aeebf0b36e76996f7adeb4444cf2db6b17",
      "old_mode": 33188,
      "old_path": "crypto/x509/v3_crld.cc",
      "new_id": "372cb9cde93c4eb0c28a0eaee872eb2d5cdb0d63",
      "new_mode": 33188,
      "new_path": "crypto/x509/v3_crld.cc"
    },
    {
      "type": "modify",
      "old_id": "5bb2522c7640d5e29e3ee9890dac4622aa77c37b",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_crl.cc",
      "new_id": "d30c172531e93c8e653e9a4b22edcf7d11ea4179",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_crl.cc"
    },
    {
      "type": "modify",
      "old_id": "73b1c862cf77bae9de9ab66776d8b8073b519047",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_req.cc",
      "new_id": "31fb09fa2830c5776899bb3e2b8026cc5ed40855",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_req.cc"
    },
    {
      "type": "modify",
      "old_id": "d88ae8281d7a368d53cdf5dad733d1f1683eaa4a",
      "old_mode": 33188,
      "old_path": "include/openssl/asn1.h",
      "new_id": "1dae5f7ea11519d5fc645fe8e016e3af7bed7be3",
      "new_mode": 33188,
      "new_path": "include/openssl/asn1.h"
    }
  ]
}
