comparison extensions/app_sip/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
307 os_memset(p, 0, count - 8); 307 os_memset(p, 0, count - 8);
308 } 308 }
309 byteReverse(ctx->in, 14); 309 byteReverse(ctx->in, 14);
310 310
311 /* Append length in bits and transform */ 311 /* Append length in bits and transform */
312 ((u32 *) ctx->in)[14] = ctx->bits[0]; 312 os_memcpy(&ctx->in[56], &ctx->bits[0], 8);
313 ((u32 *) ctx->in)[15] = ctx->bits[1];
314 313
315 MD5Transform(ctx->buf, (u32 *) ctx->in); 314 MD5Transform(ctx->buf, (u32 *) ctx->in);
316 byteReverse((unsigned char *) ctx->buf, 4); 315 byteReverse((unsigned char *) ctx->buf, 4);
317 os_memcpy(digest, ctx->buf, 16); 316 os_memcpy(digest, ctx->buf, 16);
318 os_memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */ 317 os_memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
"Welcome to our mercurial repository"