]> git.sesse.net Git - ffmpeg/commitdiff
Make SHA digest function write digest value with AV_WN32 instead of assuming
authorKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 11 Feb 2010 11:45:35 +0000 (11:45 +0000)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 11 Feb 2010 11:45:35 +0000 (11:45 +0000)
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.

Originally committed as revision 21754 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavutil/sha.c

index 3107deeffea65758f7860e24f654df28aec6313f..38221a71642de2369c545053b2381e4cb400e900 100644 (file)
@@ -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 @@ void av_sha_final(AVSHA* ctx, uint8_t *digest)
         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