comparison extensions/app_radgw/md5.c @ 1414:f6f12521c2aa

Fix strict-aliasing warnings with gcc 4.8 Rewrite IN6_ADDR_V4MAP() to not rely upon aliasing rules. Add test for IN6_ADDR_V4MAP() and IN6_ADDR_V4UNMAP(). Rewrite MD5Final() to not rely upon aliasing rules. (Not tested)
author Luke Mewburn <luke@mewburn.net>
date Tue, 18 Feb 2020 19:01:49 +1100
parents 0fa8207cc91a
children
comparison
equal deleted inserted replaced
1413:1979715b744f 1414:f6f12521c2aa
284 os_memset(p, 0, count - 8); 284 os_memset(p, 0, count - 8);
285 } 285 }
286 byteReverse(ctx->in, 14); 286 byteReverse(ctx->in, 14);
287 287
288 /* Append length in bits and transform */ 288 /* Append length in bits and transform */
289 ((u32 *) ctx->in)[14] = ctx->bits[0]; 289 os_memcpy(&ctx->in[56], &ctx->bits[0], 8);
290 ((u32 *) ctx->in)[15] = ctx->bits[1];
291 290
292 MD5Transform(ctx->buf, (u32 *) ctx->in); 291 MD5Transform(ctx->buf, (u32 *) ctx->in);
293 byteReverse((unsigned char *) ctx->buf, 4); 292 byteReverse((unsigned char *) ctx->buf, 4);
294 os_memcpy(digest, ctx->buf, 16); 293 os_memcpy(digest, ctx->buf, 16);
295 os_memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */ 294 os_memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
"Welcome to our mercurial repository"