[FFmpeg-devel] [PATCH 1/2] AAC: fix strict aliasing violation in parser

Robert Swain robert.swain
Sun Dec 14 22:08:56 CET 2008


2008/12/14 Mans Rullgard <mans at mansr.com>:
> ---
>  libavcodec/aac_parser.c |    9 ++++++---
>  1 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/aac_parser.c b/libavcodec/aac_parser.c
> index 1d75e1e..3ff1416 100644
> --- a/libavcodec/aac_parser.c
> +++ b/libavcodec/aac_parser.c
> @@ -32,10 +32,13 @@ static int aac_sync(uint64_t state, AACAC3ParseContext *hdr_info,
>  {
>     GetBitContext bits;
>     int size, rdb, ch, sr;
> -    uint8_t tmp[8];
> +    union {
> +        uint64_t u64;
> +        uint8_t  u8[8];
> +    } tmp;
>
> -    AV_WB64(tmp, state);
> -    init_get_bits(&bits, tmp+8-AAC_HEADER_SIZE, AAC_HEADER_SIZE * 8);
> +    tmp.u64 = be2me_64(state);
> +    init_get_bits(&bits, tmp.u8+8-AAC_HEADER_SIZE, AAC_HEADER_SIZE * 8);
>
>     if(get_bits(&bits, 12) != 0xfff)
>         return 0;

I'm not sure if this file is under my jurisdiction but from my
perspective it looks OK, as long as it doesn't break anything which I
doubt it does considering you wrote it. :)

Rob




More information about the ffmpeg-devel mailing list