)]}' { "commit": "ad1907fe73334d6c696c8539646c21b11178f20f", "tree": "411a14db61451a6498ea98d23f4f2285a0687f4a", "parents": [ "22bb031c436c352498a05cd0881575908467a742" ], "author": { "name": "Adam Langley", "email": "agl@chromium.org", "time": "Wed Jul 30 11:55:17 2014 -0700" }, "committer": { "name": "Adam Langley", "email": "agl@google.com", "time": "Thu Jul 31 18:49:22 2014 +0000" }, "message": "Use asm directives to protect OPENSSL_cleanse.\n\nCompilers have a bad habit of removing \"superfluous\" memset calls that\nare trying to zero memory. For example, when memset()ing a buffer and\nthen free()ing it, the compiler might decide that the memset is\nunobservable and thus can be removed.\n\nPreviously we tried to stop this by a) implementing memset in assembly\non x86 and b) putting the function in its own file for other platforms.\n\nThis change removes those tricks in favour of using asm directives to\nscare the compiler away. As best as our compiler folks can tell, this is\nsufficient and will continue to be so.\n\nChange-Id: I40e0a62c3043038bafd8c63a91814a75a3c59269\nReviewed-on: https://boringssl-review.googlesource.com/1339\nReviewed-by: David Benjamin \u003cdavidben@chromium.org\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n", "tree_diff": [ { "type": "modify", "old_id": "35c22621a0f2157532fccafd1bd19b455257271d", "old_mode": 33188, "old_path": "crypto/CMakeLists.txt", "new_id": "2e255b8fbad56bcd2b4f4418500552bc14437190", "new_mode": 33188, "new_path": "crypto/CMakeLists.txt" }, { "type": "modify", "old_id": "151493ab9aa875f164f1ce23c30ca7baa7cf3976", "old_mode": 33188, "old_path": "crypto/cpu-x86-asm.pl", "new_id": "1ac7d847a7525ba9c4b7e12bc32808174a85493b", "new_mode": 33188, "new_path": "crypto/cpu-x86-asm.pl" }, { "type": "modify", "old_id": "a5f639bb9ba2b8875391925299da30e19a68196e", "old_mode": 33188, "old_path": "crypto/mem.c", "new_id": "e9c035e5a47d82ae2e62b77c62c9d3fdc9f8ec60", "new_mode": 33188, "new_path": "crypto/mem.c" }, { "type": "delete", "old_id": "2c46ffee10d0b012d250a5551fdafaf466bbcda1", "old_mode": 33188, "old_path": "crypto/mem_clear.c", "new_id": "0000000000000000000000000000000000000000", "new_mode": 0, "new_path": "/dev/null" } ] }