mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00
* #27096: iax: use union instead of dereferencing type-punned pointer
Patch sent upstream at https://sourceforge.net/p/iaxclient/bugs/43/
This commit is contained in:
@ -116,7 +116,7 @@ void IAX_MD5Update(struct IAX_MD5Context *ctx, uint8_t const *buf, unsigned int
|
||||
}
|
||||
memcpy(p, buf, t);
|
||||
IAX_byteReverse(ctx->in, 16);
|
||||
IAX_MD5Transform(ctx->buf, (uint32_t *) ctx->in);
|
||||
IAX_MD5Transform(ctx->buf, ctx->in_32);
|
||||
buf += t;
|
||||
len -= t;
|
||||
}
|
||||
@ -171,10 +171,10 @@ void IAX_MD5Final(uint8_t digest[16], struct IAX_MD5Context *ctx)
|
||||
IAX_byteReverse(ctx->in, 14);
|
||||
|
||||
/* Append length in bits and transform */
|
||||
((uint32_t *) ctx->in)[14] = ctx->bits[0];
|
||||
((uint32_t *) ctx->in)[15] = ctx->bits[1];
|
||||
ctx->in_32[14] = ctx->bits[0];
|
||||
ctx->in_32[15] = ctx->bits[1];
|
||||
|
||||
IAX_MD5Transform(ctx->buf, (uint32_t *) ctx->in);
|
||||
IAX_MD5Transform(ctx->buf, ctx->in_32);
|
||||
IAX_byteReverse((uint8_t *) ctx->buf, 4);
|
||||
memcpy(digest, ctx->buf, 16);
|
||||
memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */
|
||||
|
@ -11,7 +11,10 @@ typedef unsigned char uint8_t;
|
||||
struct IAX_MD5Context {
|
||||
uint32_t buf[4];
|
||||
uint32_t bits[2];
|
||||
uint8_t in[64];
|
||||
union {
|
||||
uint8_t in[64];
|
||||
uint32_t in_32[16];
|
||||
};
|
||||
};
|
||||
|
||||
void IAX_MD5Init(struct IAX_MD5Context *context);
|
||||
|
Reference in New Issue
Block a user