[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