)]}'
{
  "commit": "056035edcc2004c710baaee849c7b690a64a4b62",
  "tree": "0191e85c49d2f8e125bcf48c6c800b5da71768b9",
  "parents": [
    "2c58c2fda1c1da4131f35f58289f44d87cedbb8d"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Thu Jan 02 16:07:28 2020 -0500"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Mon Jan 06 19:10:12 2020 +0000"
  },
  "message": "Remove alignment requirement on CRYPTO_poly1305_finish.\n\nThis dates to https://boringssl-review.googlesource.com/2850, which was\ndone in response to an ARM crash. I assume the ARM crash was due to\npoly1305_arm.c casting pointers around, which is technically UB, even on\nx86 since C says it is UB to cast pointers if the value would be\nunaligned. (Also I believe it\u0027s a strict aliasing violation, though the\ncompilers really ought to give us a sanitizer for it if they\u0027re excited\nabout that optimization.)\n\nReplace with memcpy, which any reasonable compiler would compile the\nsame on platforms that support unaligned access. ARM does support it\nthese days, so perhaps the crash came from an older ARM?\n\nBenchmarks showed no difference with this CL.\n\nChange-Id: I022bdb84f95e45c143ad19359f646ee1416d5ae9\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/39344\nCommit-Queue: Adam Langley \u003cagl@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4aff713f5cc0272900197174f88a49a166f50be7",
      "old_mode": 33188,
      "old_path": "crypto/poly1305/poly1305_arm.c",
      "new_id": "004221dedcfdadfe9b5539ce85f745f6fadf81e9",
      "new_mode": 33188,
      "new_path": "crypto/poly1305/poly1305_arm.c"
    },
    {
      "type": "modify",
      "old_id": "198cca12dae54f953690b22634dded1b1430f4be",
      "old_mode": 33188,
      "old_path": "crypto/poly1305/poly1305_test.cc",
      "new_id": "930db01533905b64b3063210fa515a988f8bc6b8",
      "new_mode": 33188,
      "new_path": "crypto/poly1305/poly1305_test.cc"
    },
    {
      "type": "modify",
      "old_id": "e7b3ae5390e00cf548634208de8a8b86b91a6060",
      "old_mode": 33188,
      "old_path": "crypto/poly1305/poly1305_vec.c",
      "new_id": "7860e0ab4abad56ce5e0f4daa3430fed02affbdf",
      "new_mode": 33188,
      "new_path": "crypto/poly1305/poly1305_vec.c"
    },
    {
      "type": "modify",
      "old_id": "cefe2b1c7bbd90242be13c566d600e8f7c045f6f",
      "old_mode": 33188,
      "old_path": "include/openssl/poly1305.h",
      "new_id": "a38ef21788529635172c885f03de270fd80abc6b",
      "new_mode": 33188,
      "new_path": "include/openssl/poly1305.h"
    }
  ]
}
