[Python-checkins] cpython: sha3: let's keep it simple and always allocate enough extra space for

christian.heimes python-checkins at python.org
Thu Sep 8 09:05:00 EDT 2016


https://hg.python.org/cpython/rev/01943b2114a6
changeset: 103307:01943b2114a6
user: Christian Heimes <christian at python.org>
date: Thu Sep 08 15:04:38 2016 +0200
summary:
 sha3: let's keep it simple and always allocate enough extra space for uint64_t[20].
files:
 Modules/_sha3/sha3module.c | 5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/Modules/_sha3/sha3module.c b/Modules/_sha3/sha3module.c
--- a/Modules/_sha3/sha3module.c
+++ b/Modules/_sha3/sha3module.c
@@ -114,7 +114,7 @@
 #endif
 
 #define SHA3_MAX_DIGESTSIZE 64 /* 64 Bytes (512 Bits) for 224 to 512 */
-#define SHA3_LANESIZE 96 /* ExtractLane needs an extra 96 bytes */
+#define SHA3_LANESIZE (20 * 8) /* ExtractLane needs max uint64_t[20] extra. */
 #define SHA3_state Keccak_HashInstance
 #define SHA3_init Keccak_HashInitialize
 #define SHA3_process Keccak_HashUpdate
@@ -605,8 +605,7 @@
 /* ExtractLane needs at least SHA3_MAX_DIGESTSIZE + SHA3_LANESIZE and
 * SHA3_LANESIZE extra space.
 */
- digest = (unsigned char*)PyMem_Malloc(SHA3_LANESIZE +
- ((digestlen > SHA3_MAX_DIGESTSIZE) ? digestlen : SHA3_MAX_DIGESTSIZE));
+ digest = (unsigned char*)PyMem_Malloc(digestlen + SHA3_LANESIZE);
 if (digest == NULL) {
 return PyErr_NoMemory();
 }
-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /