)]}'
{
  "commit": "addfceb221b504dbd0835509839eb547b14830fa",
  "tree": "d90e284038c8a69ece813687d9f9b9ed94df6d97",
  "parents": [
    "185121b4a470817adf488660b6345165f370e36b"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue Jan 27 17:13:24 2026 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jan 27 15:24:48 2026 -0800"
  },
  "message": "Fix an OK but odd-looking use of ASN1_TYPE\n\nX509_REQ_print_ex accessed an ASN1_TYPE\u0027s value.asn1_string union arm\nbefore checking the type was an ASN1_STRING-based type. This is fine[*]\nbecause it doesn\u0027t dereference the pointer until after the type is\nchecked.\n\nNonetheless, we can simply move the access slightly further down to make\nit more straightforwardly correct.\n\nWhile I\u0027m here:\n\n- Use the accessors for ASN1_STRING. One less thing to touch when\n  ASN1_STRING becomes opaque later.\n\n- There\u0027s no need for the cast. BIO_write already takes void*\n\n- While they\u0027re all typedefs, accesssing the field as ASN1_BIT_STRING is\n  bizarre when this function does not accept ASN1_BIT_STRING anyway!\n\n[*] Strictly speaking, it relies on the more lax C union rules, which\nallow type-punned direct (but not pointer) access to an inactive union\narm. C++ does not allow this, but AIUI every C++ compiler takes the C\ninterpretation in practice.\n\nChange-Id: I675b828680a70cbcb540308d3c5dc628b6ad0c48\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/88047\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: Adam Langley \u003cagl@google.com\u003e\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4d02d0d6a40279239088027c65287f10ee4ceb4c",
      "old_mode": 33188,
      "old_path": "crypto/x509/t_req.cc",
      "new_id": "073d417767d4346d4410249dca97c68001a62069",
      "new_mode": 33188,
      "new_path": "crypto/x509/t_req.cc"
    }
  ]
}
