diff options
author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2021-11-27 15:49:46 +0100 |
---|---|---|
committer | Sander Vrijders <sander@ouroboros.rocks> | 2021-12-06 17:51:55 +0100 |
commit | 4e8b6f726dab50865d7daded2299d0187184901f (patch) | |
tree | 7db60ecdf106398d5f966b98b7c26c0052d21474 | |
parent | 697aacc07202debf88b582998e261cb68f06ae25 (diff) | |
download | ouroboros-4e8b6f726dab50865d7daded2299d0187184901f.tar.gz ouroboros-4e8b6f726dab50865d7daded2299d0187184901f.zip |
lib: Fix undefined behaviour in sha3
Arithmetic with NULL pointers is undefined behaviour. Caught by clang
13. Fixed by using uintptr_t, which is guaranteed to be the size of a
pointer.
Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
-rw-r--r-- | src/lib/sha3.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/lib/sha3.c b/src/lib/sha3.c index 74f971ab..76ddbae6 100644 --- a/src/lib/sha3.c +++ b/src/lib/sha3.c @@ -52,8 +52,7 @@ #include <assert.h> #include <string.h> -#define IS_ALIGNED_64(p) (0 == (7 & ((const uint8_t *) (p) \ - - (const uint8_t *) 0))) +#define IS_ALIGNED_64(p) (0 == (7 & ((uintptr_t) (p)))) #define I64(x) x##LL #define ROTL64(qword, n) ((qword) << (n) ^ ((qword) >> (64 - (n)))) |