aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Goulet <dgoulet@torproject.org>2021-01-28 12:36:42 -0500
committerDavid Goulet <dgoulet@torproject.org>2021-01-28 12:36:42 -0500
commitf3da5f88d73f20ba1d28dde973c41e4ec45a02b6 (patch)
tree6344a72524faa3ce607267601194acc80a93b003
parentdd5fbc1bd9d54d191240ac4e15b5324fb83a903d (diff)
parent02bd135cb188531e8a6ee95959d7fe1d7f9635a8 (diff)
downloadtor-f3da5f88d73f20ba1d28dde973c41e4ec45a02b6.tar.gz
tor-f3da5f88d73f20ba1d28dde973c41e4ec45a02b6.zip
Merge branch 'maint-0.3.5' into maint-0.4.3
-rw-r--r--changes/bug402105
-rw-r--r--src/ext/keccak-tiny/keccak-tiny.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/changes/bug40210 b/changes/bug40210
new file mode 100644
index 0000000000..f492262a11
--- /dev/null
+++ b/changes/bug40210
@@ -0,0 +1,5 @@
+ o Minor features (crypto):
+ - Fix undefined behavior on our Keccak library. The bug only appears on
+ platforms with 32-byte CPU cache lines (e.g. armv5tel) and would result
+ in wrong digests. Fixes bug 40210; bugfix on 0.2.8.1-alpha. Thanks to
+ Bernhard Übelacker, Arnd Bergmann and weasel for diagnosing this.
diff --git a/src/ext/keccak-tiny/keccak-tiny.h b/src/ext/keccak-tiny/keccak-tiny.h
index a9c8ed6420..dd26386a9a 100644
--- a/src/ext/keccak-tiny/keccak-tiny.h
+++ b/src/ext/keccak-tiny/keccak-tiny.h
@@ -21,7 +21,7 @@ typedef struct keccak_state {
size_t offset;
uint8_t finalized : 1;
-} keccak_state;
+} __attribute__((aligned(8))) keccak_state;
/* Initialize a Keccak instance suitable for SHA-3 hash functions. */
int keccak_digest_init(keccak_state *s, size_t bits);