)]}'
{
  "commit": "97d48dbeb8010365a1d5cb029bee29617261d8a0",
  "tree": "a510719d3366e15c747e69864b8ecd84ff1d3ac6",
  "parents": [
    "0e8e3c682fd5459cca3d12466dc35bdf9b483ffa"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Mar 29 03:09:15 2023 +0900"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Mar 28 22:02:15 2023 +0000"
  },
  "message": "Sort various X.509 global lists sooner\n\nThese functions need a lot more work, documentation, warnings\nthat using them isn\u0027t a good idea, and really we should just remove them\nentirely.\n\nBut, for now, this is a minimal fix to the most egregious of issues: not\nonly are the functions themselves not thread-safe (i.e. you must call it\nin some program-global initialization), but using them puts you in a\nstate where future uses of the X.509 library are not thread-safe! Fix\nthe latter by sorting the list at the point we\u0027re already mutating\nthings.\n\nRe-sorting a list after every addition is not a particularly sensible\nimplementation, but we can assume these lists will only ever contain\nO(1) entries.\n\n(The sort calls date to\nhttps://boringssl-review.googlesource.com/c/boringssl/+/27304, but the\nissue was there before. Prior to that CL, sk_FOO_find implicitly sorted\nthe list. That CL made sk_FOO_find itself a const operation, necessary\nfor this, and just added explicit sk_FOO_sort calls to preserve the\nexisting behavior, initially.)\n\nChange-Id: I063b8e708eaf17dfe66c5a3e8d33733adb3297e9\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/58385\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\nCommit-Queue: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1329a9f9515510f33b707824450035c60c0d0397",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_trs.c",
      "new_id": "553a0aecad81b44920d006d375956cd98e659dec",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_trs.c"
    },
    {
      "type": "modify",
      "old_id": "d985cb742ec5fc52b6bcd3fe0f2051dd637ed9d3",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_vpm.c",
      "new_id": "f14a531f6d6d6bd91601182e96ab3535504a8536",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_vpm.c"
    },
    {
      "type": "modify",
      "old_id": "d006a5ee8be80a4aac4eb9fe9d1fb5781331d0b2",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_lib.c",
      "new_id": "5a3c3e81da2937f2870ceb04fd573eaf1f27908d",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_lib.c"
    },
    {
      "type": "modify",
      "old_id": "71b2c6d1ca12f68c291cfc0fc42a984877c0a51b",
      "old_mode": 33188,
      "old_path": "crypto/x509v3/v3_purp.c",
      "new_id": "8c254e80b0b080f4c1f6ce5bf84e29485fd32eba",
      "new_mode": 33188,
      "new_path": "crypto/x509v3/v3_purp.c"
    }
  ]
}
