From b68d63ce4bf780bcb7d1af917d3b44413cf1206f Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Sun, 29 Apr 2012 00:28:40 +0200 Subject: [PATCH] GCC47: Fix warning in md5.c MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit md5.c: In function ‘MD5Final’: md5.c:156:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] md5.c:157:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] Signed-off-by: Marek Vasut Cc: Wolfgang Denk Acked-by: Mike Frysinger --- include/u-boot/md5.h | 5 ++++- lib/md5.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/include/u-boot/md5.h b/include/u-boot/md5.h index 08924cce3c..e09c16a6e3 100644 --- a/include/u-boot/md5.h +++ b/include/u-boot/md5.h @@ -11,7 +11,10 @@ struct MD5Context { __u32 buf[4]; __u32 bits[2]; - unsigned char in[64]; + union { + unsigned char in[64]; + __u32 in32[16]; + }; }; /* diff --git a/lib/md5.c b/lib/md5.c index 81a09e3f90..2ae4a06319 100644 --- a/lib/md5.c +++ b/lib/md5.c @@ -153,8 +153,8 @@ MD5Final(unsigned char digest[16], struct MD5Context *ctx) byteReverse(ctx->in, 14); /* Append length in bits and transform */ - ((__u32 *) ctx->in)[14] = ctx->bits[0]; - ((__u32 *) ctx->in)[15] = ctx->bits[1]; + ctx->in32[14] = ctx->bits[0]; + ctx->in32[15] = ctx->bits[1]; MD5Transform(ctx->buf, (__u32 *) ctx->in); byteReverse((unsigned char *) ctx->buf, 4); -- 2.39.5