[Python-checkins] bpo-36515: Disable unaligned memory access in _sha3 on ARM (GH-25927)

miss-islington webhook-mailer at python.org
Wed May 5 16:55:41 EDT 2021


https://github.com/python/cpython/commit/da5c808fb50d34bc2e180d9481706072f33025da
commit: da5c808fb50d34bc2e180d9481706072f33025da
branch: main
author: Gregory P. Smith <greg at krypto.org>
committer: miss-islington <31488909+miss-islington at users.noreply.github.com>
date: 2021-05-05T13:55:33-07:00
summary:

bpo-36515: Disable unaligned memory access in _sha3 on ARM (GH-25927)



Contributed-By: Matthias Klose

Automerge-Triggered-By: GH:tiran

files:
A Misc/NEWS.d/next/Library/2021-05-05-11-44-49.bpo-36515.uOSa3q.rst
M Modules/_sha3/sha3module.c

diff --git a/Misc/NEWS.d/next/Library/2021-05-05-11-44-49.bpo-36515.uOSa3q.rst b/Misc/NEWS.d/next/Library/2021-05-05-11-44-49.bpo-36515.uOSa3q.rst
new file mode 100644
index 00000000000000..dd24474c2fde7e
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-05-05-11-44-49.bpo-36515.uOSa3q.rst
@@ -0,0 +1,2 @@
+The :mod:`hashlib` module no longer does unaligned memory accesses when
+compiled for ARM platforms.
diff --git a/Modules/_sha3/sha3module.c b/Modules/_sha3/sha3module.c
index aba7f6d4b45c22..3974e0b6b47faa 100644
--- a/Modules/_sha3/sha3module.c
+++ b/Modules/_sha3/sha3module.c
@@ -64,6 +64,11 @@
 #define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
 #endif
 
+/* Prevent bus errors on platforms requiring aligned accesses such ARM. */
+#if HAVE_ALIGNED_REQUIRED && !defined(NO_MISALIGNED_ACCESSES)
+#define NO_MISALIGNED_ACCESSES
+#endif
+
 /* mangle names */
 #define KeccakF1600_FastLoop_Absorb _PySHA3_KeccakF1600_FastLoop_Absorb
 #define Keccak_HashFinal _PySHA3_Keccak_HashFinal



More information about the Python-checkins mailing list