)]}'
{
  "commit": "6be491b7bb57c3950d4fbb97fdd4a141e3fa4d63",
  "tree": "c93b8be114138bd489070f2dcbdfb19268971db1",
  "parents": [
    "bf7b331d1b36c1183d972b0c54004ed2956e9c7a"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Oct 30 11:25:09 2019 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Wed Oct 30 17:02:32 2019 +0000"
  },
  "message": "Work around more C language bugs with empty spans.\n\nC\u0027s specification text around pointer arithmetic is buggy and fails to\naccount for empty spans. Empty spans are typically represented as\nptr\u003dNULL and len\u003d0, so (T*)NULL + 0 must be defined for ptr + len to\nreliably work. C++ does not have this bug and specifies this correctly.\nSee https://crbug.com/1019588.\n\nThis language bug has made its way over to newer versions of UBSan,\nwhich enforce this. In the short term, add bogus length checks as a\nworkaround. However, unlike the memcpy language bug, we cannot address\nthis systematically. In the long term, we need to switch libcrypto to\nbuilding as C++ for a real fix.\n\nTo test this, update our clang revision to that in\nhttps://chromium-review.googlesource.com/c/chromium/src/+/1879890. Note\nthat clang revision was later reverted in Chromium for seemingly\nunrelated reasons.\n\nThis newer UBSan also catches a memcpy/OPENSSL_memcpy issue in\nsiphash.c, from the earlier C NULL bug we\u0027d been working around.\n\nBug: chromium:1019588, chromium:1019644\nChange-Id: I460e547c8cd740db68da8cc2a3a970276ec92e90\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/38584\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "717aaac79b0539b19e4b02be2f84920f1540eb33",
      "old_mode": 33188,
      "old_path": "crypto/buf/buf.c",
      "new_id": "bd97dd347cb3e8b9071a8696e271ca71e0de6bbe",
      "new_mode": 33188,
      "new_path": "crypto/buf/buf.c"
    },
    {
      "type": "modify",
      "old_id": "ca077acc3c79173ec7f2153e5ae6ce69facb29f3",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/modes/gcm.c",
      "new_id": "3860ebed6b0bca03f6bfba2b224fa483ca104327",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/modes/gcm.c"
    },
    {
      "type": "modify",
      "old_id": "480d9e56a1fc4253383a1b93bd941ad145d02137",
      "old_mode": 33188,
      "old_path": "crypto/poly1305/poly1305_vec.c",
      "new_id": "e7b3ae5390e00cf548634208de8a8b86b91a6060",
      "new_mode": 33188,
      "new_path": "crypto/poly1305/poly1305_vec.c"
    },
    {
      "type": "modify",
      "old_id": "7e4e9c524d952adce6623c6d71d28828525784bd",
      "old_mode": 33188,
      "old_path": "crypto/siphash/siphash.c",
      "new_id": "f55c3cab4a5a6d1c571949bc579253df9ef5cd9d",
      "new_mode": 33188,
      "new_path": "crypto/siphash/siphash.c"
    },
    {
      "type": "modify",
      "old_id": "c36ec66633307e3a14b92d4118f67a810baedb8b",
      "old_mode": 33188,
      "old_path": "util/bot/update_clang.py",
      "new_id": "1ed40dc46791fa397d71b9334c64e926c737485f",
      "new_mode": 33188,
      "new_path": "util/bot/update_clang.py"
    }
  ]
}
