[PATCH 1/2] Fix strict-aliasing warning in MD5

Petr Písař <[email protected]>
Newsgroups gmane.comp.gnu.utils.bugs
Message-ID <[email protected]>
---
 lib/md5.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/md5.c b/lib/md5.c
index 743b8f9..5ed5555 100644
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -104,6 +104,7 @@ md5_finish_ctx (ctx, resbuf)
   /* Take yet unprocessed bytes into account.  */
   md5_uint32 bytes = ctx->buflen;
   size_t pad;
+  md5_uint32 *file_length_value;
 
   /* Now count remaining bytes.  */
   ctx->total[0] += bytes;
@@ -114,9 +115,9 @@ md5_finish_ctx (ctx, resbuf)
   memcpy (&ctx->buffer[bytes], fillbuf, pad);
 
   /* Put the 64-bit file length in *bits* at the end of the buffer.  */
-  *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
-  *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) |
-							(ctx->total[0] >> 29));
+  file_length_value = (md5_uint32 *)(ctx->buffer + bytes + pad);
+  file_length_value[0] = SWAP (ctx->total[0] << 3);
+  file_length_value[1] = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29));
 
   /* Process last bytes.  */
   md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
-- 
1.7.11.7
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.