)]}'
{
  "commit": "b173d9191d080c475f803965bd7639914a6d1dc3",
  "tree": "0727899ec95e7c0ec8aa135da14155c615fbf2e9",
  "parents": [
    "575d1128581c6751f93b0649253ba9d2d981d3e5"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Mon Apr 19 14:03:59 2021 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Tue Apr 20 19:06:51 2021 +0000"
  },
  "message": "Remove support for malformed X509_ATTRIBUTEs.\n\nThe X509_ATTRIBUTE structure includes a hack to tolerate malformed\nattributes that encode the value directly instead of a set of values.\nThis form is never created by OpenSSL and shouldn\u0027t be needed any more.\n\n(Imported from upstream\u0027s e20b57270dece66ce2c68aeb5d14dd6d9f3c5d68.)\n\nThis also changes X509_ATTRIBUTE_set1_data slightly. Previously,\nset1_data would override whatever was previously in the X509_ATTRIBUTE,\nbut leak memory. Now set1_data appends to the set. (PKCS#10 attributes\nuse SET OF ANY as value.) It\u0027s unclear to me if this was intentional on\nupstream\u0027s part. (The attrtype \u003d\u003d 0 case only makes sense in the old\nbehavior.) Since there is no other way to create a two-element SET and\nupstream has long since released this behavior, I left it matching\nupstream.\n\nUpdate-Note: Given OpenSSL hasn\u0027t accepted these for five years, it\u0027s\nunlikely anything depends on it. If something breaks, we can revert this\nand revisit. No one calls X509_ATTRIBUTE_set1_data on a non-empty\nX509_ATTRIBUTE, so the behavior change there should be safe.\n\nChange-Id: Ic03c793b7d42784072ec0d9a7b6424aecc738632\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/46947\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6b7d0c6b5ac9f59c61a8ef89f22a02a50d350d27",
      "old_mode": 33188,
      "old_path": "crypto/x509/internal.h",
      "new_id": "a5f31c290a861d47f22a591cced798cd34f43aa2",
      "new_mode": 33188,
      "new_path": "crypto/x509/internal.h"
    },
    {
      "type": "modify",
      "old_id": "07edde9eba10ec54f3a6b1ae1222c8462bf04da4",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_att.c",
      "new_id": "90f722a283789d496299ad118064453ed580ebf5",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_att.c"
    },
    {
      "type": "modify",
      "old_id": "d906df86ca97c1858490c987f2977b20d2e467fd",
      "old_mode": 33188,
      "old_path": "crypto/x509/x_attrib.c",
      "new_id": "3ee8bd492807896d8679134bc8bff2ba6e55372d",
      "new_mode": 33188,
      "new_path": "crypto/x509/x_attrib.c"
    }
  ]
}
