)]}'
{
  "commit": "4937f05ccd0b97ff5aeaa1d038cf7f6bc8f7dd36",
  "tree": "3beed1fe5392abcb89cdbcd22a40f66d7f5cd313",
  "parents": [
    "f3e5941515dde1d5983f395c751d3b2eedf7b33a"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Sep 08 16:50:24 2021 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Sep 20 15:16:05 2021 +0000"
  },
  "message": "Unwind remnants of ASN1_TFLG_NDEF.\n\nThe i2d functions internally take a tag/class pair of parameters. If tag\nis not -1, we override the tag with (tag, class). Otherwise, class is\nignored. (class is inconsistently called aclass or iclass.)\n\nHistorically, the remaning bits of class were repurposed to pass extra\nflags down the structure. These had to be preserved in all recursive\ncalls, so the functions take apart and reassemble the two halves of\naclass/iclass. The only such flag was ASN1_TFLG_NDEF, which on certain\ntypes, caused OpenSSL to encode indefinite-length encoding. We removed\nthis in https://boringssl-review.googlesource.com/c/boringssl/+/43889.\n\nDue to these flags, if tag \u003d\u003d -1, class should default to zero. However,\nX509_NAME\u0027s callbacks pass -1, -1, instead of -1, 0, effectively setting\nall flags. This wasn\u0027t noticed because none of the types below X509_NAME\npay attention to ASN1_TFLG_NDEF.\n\nThis CL does two things: First, it unwinds the remainder of the flags\nmachinery. If we ever need flags, we should pass it as a distinct\nargument. Second, it fixes the X509_NAME calls and asserts that -1 is\nalways paired with 0.\n\nChange-Id: I285a73a06ad16980617fe23d5ea7f260fc5dbf16\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/49385\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e30be16944aae03ea20f0ac2bf2a22a5ca84f0e1",
      "old_mode": 33188,
      "old_path": "crypto/asn1/internal.h",
      "new_id": "a4bd34e5b27e177f014b37256562f877017a6db8",
      "new_mode": 33188,
      "new_path": "crypto/asn1/internal.h"
    },
    {
      "type": "modify",
      "old_id": "4ccacabcd2dc9b86831e24534669a822d03cd92c",
      "old_mode": 33188,
      "old_path": "crypto/asn1/tasn_enc.c",
      "new_id": "9917d2a0cc60c8d4e7b48c5a2950d259ba1cb9d1",
      "new_mode": 33188,
      "new_path": "crypto/asn1/tasn_enc.c"
    },
    {
      "type": "modify",
      "old_id": "348d31b0a4ff2a4210ac17fd2f1f00be01243fb7",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_name.c",
      "new_id": "4fea082cf48874cbe1be5f7250e67e841a9de9b8",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_name.c"
    }
  ]
}
