Mercurial > libavutil.hg
diff sha.c @ 834:3423ae1276e2 libavutil
Make SHA digest function write digest value with AV_WN32 instead of assuming
that output may be written as uint32_t since output buffer may not be aligned
(and it's silly to force alignment on it) and it does not work in that case
properly on some architectures.
author | kostya |
---|---|
date | Thu, 11 Feb 2010 11:45:35 +0000 |
parents | 3412528f4de7 |
children | 918af9b85ce1 |
line wrap: on
line diff
--- a/sha.c Wed Feb 10 23:08:32 2010 +0000 +++ b/sha.c Thu Feb 11 11:45:35 2010 +0000 @@ -25,6 +25,7 @@ #include "avutil.h" #include "bswap.h" #include "sha.h" +#include "intreadwrite.h" /** hash context */ typedef struct AVSHA { @@ -319,7 +320,7 @@ av_sha_update(ctx, "", 1); av_sha_update(ctx, (uint8_t *)&finalcount, 8); /* Should cause a transform() */ for (i = 0; i < ctx->digest_len; i++) - ((uint32_t*)digest)[i] = be2me_32(ctx->state[i]); + AV_WN32(digest + i*4, be2me_32(ctx->state[i])); } #if LIBAVUTIL_VERSION_MAJOR < 51