[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