diff options
author | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2022-04-23 20:52:35 +0300 |
---|---|---|
committer | Evgeny Grin (Karlson2k) <k2k@narod.ru> | 2022-04-25 16:05:14 +0300 |
commit | 9c7c06d8b8e8beb7f45107e51ed19c1be816c762 (patch) | |
tree | 812ff0b68feddd9636f684b9e3836486f86f9a5e | |
parent | 851b406174e3ac796f702a9764c139d87d305659 (diff) | |
download | libmicrohttpd-9c7c06d8b8e8beb7f45107e51ed19c1be816c762.tar.gz libmicrohttpd-9c7c06d8b8e8beb7f45107e51ed19c1be816c762.zip |
sha1.c: muted alignment warnings
-rw-r--r-- | src/microhttpd/sha1.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/microhttpd/sha1.c b/src/microhttpd/sha1.c index 1e9da5c7..be9f73ab 100644 --- a/src/microhttpd/sha1.c +++ b/src/microhttpd/sha1.c | |||
@@ -105,8 +105,11 @@ sha1_transform (uint32_t H[_SHA1_DIGEST_LENGTH], | |||
105 | See FIPS PUB 180-4 paragraph 6.1.3. | 105 | See FIPS PUB 180-4 paragraph 6.1.3. |
106 | Input data must be read in big-endian bytes order, | 106 | Input data must be read in big-endian bytes order, |
107 | see FIPS PUB 180-4 paragraph 3.1.2. */ | 107 | see FIPS PUB 180-4 paragraph 3.1.2. */ |
108 | /* Use cast to (void*) to mute compiler alignment warning, | ||
109 | * data was already aligned in previous step */ | ||
108 | #define GET_W_FROM_DATA(buf,t) \ | 110 | #define GET_W_FROM_DATA(buf,t) \ |
109 | _MHD_GET_32BIT_BE (((const uint8_t*) (buf)) + (t) * SHA1_BYTES_IN_WORD) | 111 | _MHD_GET_32BIT_BE ((const void *)(((const uint8_t*) (buf)) + \ |
112 | (t) * SHA1_BYTES_IN_WORD)) | ||
110 | 113 | ||
111 | #ifndef _MHD_GET_32BIT_BE_UNALIGNED | 114 | #ifndef _MHD_GET_32BIT_BE_UNALIGNED |
112 | if (0 != (((uintptr_t) data) % _MHD_UINT32_ALIGN)) | 115 | if (0 != (((uintptr_t) data) % _MHD_UINT32_ALIGN)) |
@@ -366,11 +369,13 @@ MHD_SHA1_finish (void *ctx_, | |||
366 | if (1) | 369 | if (1) |
367 | #endif /* _MHD_PUT_32BIT_BE_UNALIGNED */ | 370 | #endif /* _MHD_PUT_32BIT_BE_UNALIGNED */ |
368 | { | 371 | { |
369 | _MHD_PUT_32BIT_BE (digest + 0 * SHA1_BYTES_IN_WORD, ctx->H[0]); | 372 | /* Use cast to (void*) here to mute compiler alignment warnings. |
370 | _MHD_PUT_32BIT_BE (digest + 1 * SHA1_BYTES_IN_WORD, ctx->H[1]); | 373 | * Compilers are not smart enough to see that alignment has been checked. */ |
371 | _MHD_PUT_32BIT_BE (digest + 2 * SHA1_BYTES_IN_WORD, ctx->H[2]); | 374 | _MHD_PUT_32BIT_BE ((void *) (digest + 0 * SHA1_BYTES_IN_WORD), ctx->H[0]); |
372 | _MHD_PUT_32BIT_BE (digest + 3 * SHA1_BYTES_IN_WORD, ctx->H[3]); | 375 | _MHD_PUT_32BIT_BE ((void *) (digest + 1 * SHA1_BYTES_IN_WORD), ctx->H[1]); |
373 | _MHD_PUT_32BIT_BE (digest + 4 * SHA1_BYTES_IN_WORD, ctx->H[4]); | 376 | _MHD_PUT_32BIT_BE ((void *) (digest + 2 * SHA1_BYTES_IN_WORD), ctx->H[2]); |
377 | _MHD_PUT_32BIT_BE ((void *) (digest + 3 * SHA1_BYTES_IN_WORD), ctx->H[3]); | ||
378 | _MHD_PUT_32BIT_BE ((void *) (digest + 4 * SHA1_BYTES_IN_WORD), ctx->H[4]); | ||
374 | } | 379 | } |
375 | 380 | ||
376 | /* Erase potentially sensitive data. */ | 381 | /* Erase potentially sensitive data. */ |