Fixed gcc warning for the md5 driver.
authorFranck Joncourt <franck@debian.org>
Sat, 26 Jan 2013 21:23:18 +0000 (22:23 +0100)
committerFranck Joncourt <franck@debian.org>
Sat, 26 Jan 2013 21:23:18 +0000 (22:23 +0100)
md5.c: In function 'MD5Final':
md5.c:166:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
md5.c:167:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

Debian Gnu/Linux on i386 build against 2.0.4 :

https://buildd.debian.org/status/fetch.php?pkg=fwknop&arch=i386&ver=2.0.4-1&stamp=1358610541

lib/md5.c

index 01521b6..dbd4f9c 100644 (file)
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -163,8 +163,8 @@ MD5Final(unsigned char digest[16], MD5Context *ctx)
 
     /* Append length in bits and transform
     */
-    ((uint32_t *) ctx->in)[14] = ctx->bits[0];
-    ((uint32_t *) ctx->in)[15] = ctx->bits[1];
+    memcpy(&(ctx->in[56]), &(ctx->bits[0]), sizeof(uint32_t));
+    memcpy(&(ctx->in[60]), &(ctx->bits[1]), sizeof(uint32_t));
 
     MD5Transform(ctx->buf, (uint32_t *) ctx->in);
     byteReverse((unsigned char *) ctx->buf, 4);