)]}'
{
  "commit": "d1b20a9580aebb6fbb0b1b2408cf1221d83afb71",
  "tree": "20970c8f92f3785b14b5177c9fd094698db51e77",
  "parents": [
    "97dd962a20b1d19c9e569cf8756fbcfc48ff7c73"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue Dec 13 17:10:09 2022 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Dec 20 23:15:31 2022 +0000"
  },
  "message": "Fix handling of EXFLAG_INVALID_POLICY on the leaf.\n\nX509_policy_check returns -1 if some certificate had an unparseable\nextension, in which case it sets EXFLAG_INVALID_POLICY on it. The\ncalling code then iterates over the certificates to find the offending\none, so the callback has a chance to undo it. But it skips i \u003d 0, the\nleaf, and instead just silentely returns success.\n\nWe really should cut down on the callback\u0027s ability to mess things up\nhere but, in the meantime, fix this. Also add a test covering this case.\n\nWhile I\u0027m here, I\u0027ve updated make_invalid_extensions.go, which I pulled\nsome code from, to rename fooOrPanic to mustFoo. That seems to be the\nconvention in the Go standard library. (regexp.MustCompile, etc.)\n\nChange-Id: Ib07c9f4175e66483bd7c0f7d49aea931bf36e53f\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/55748\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d0c2ceebafff35e2fedb738e018c4d7392aab6ee",
      "old_mode": 33188,
      "old_path": "crypto/x509/test/make_invalid_extensions.go",
      "new_id": "aba2d7197758f69dd1691fadf380292ad763f38b",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/make_invalid_extensions.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "18a6ffe988746f1faf7fec7c924e5b4eab5dfedf",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/make_policy_certs.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b36868c60fa7301797d2d08e45cd61991da8e903",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/policy_intermediate.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "74673176c6385ec5179d22c0728935a0819e368b",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/policy_intermediate_invalid.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b140704110f4405dc52857a55a7d8b225b7795d5",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/policy_leaf.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c0f56fc5d3bb133384318fb953303d3d14922d1",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/policy_leaf_invalid.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7bb209acc982d11e228ddd749959fad43caa40d3",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/policy_root.pem"
    },
    {
      "type": "modify",
      "old_id": "e5e1b84cecc765fde0eeb6909ea0b338bc66c503",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_test.cc",
      "new_id": "a69b2846c23dfad9b7b13e255490860b648bfbad",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_test.cc"
    },
    {
      "type": "modify",
      "old_id": "7d445f7483cfbc58c7d06c64053207eeafded0f6",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_vfy.c",
      "new_id": "ce110e65be76c098596fc5edba5068f2bf233b15",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_vfy.c"
    },
    {
      "type": "modify",
      "old_id": "294de931dbb364a9c52e47aff4fd09f5ffb8333f",
      "old_mode": 33188,
      "old_path": "sources.cmake",
      "new_id": "69a1f6426ea65ab65febf71a602b9059927fc3e0",
      "new_mode": 33188,
      "new_path": "sources.cmake"
    }
  ]
}
