[FFmpeg-cvslog] r21754 - trunk/libavutil/sha.c

Måns Rullgård mans
Thu Feb 11 13:24:05 CET 2010


kostya <subversion at mplayerhq.hu> writes:

> Author: kostya
> Date: Thu Feb 11 12:45:35 2010
> New Revision: 21754
>
> Log:
> 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.
>
> Modified:
>    trunk/libavutil/sha.c
>
> Modified: trunk/libavutil/sha.c
> ==============================================================================
> --- trunk/libavutil/sha.c	Thu Feb 11 08:59:24 2010	(r21753)
> +++ trunk/libavutil/sha.c	Thu Feb 11 12:45:35 2010	(r21754)
> @@ -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 *d
>          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]));

Better still, use AV_WB32 and drop the be2me.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-cvslog mailing list