diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-02-22 22:44:15 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-02-22 22:44:15 +0100 |
commit | 80ddf7889eecef0a9f9f4d7e3e8a0b2e3f700521 (patch) | |
tree | 7cfc3cb358683d932f3a82fe6dda8dc858736373 | |
parent | 4be63111d1a29a13153cc25dcd9681dbbe7e0851 (diff) | |
parent | 6626a7df534591c1eaed860bcb2f61610a3727f4 (diff) | |
download | ffmpeg-80ddf7889eecef0a9f9f4d7e3e8a0b2e3f700521.tar.gz |
Merge remote-tracking branch 'qatar/release/9' into release/1.1
* qatar/release/9:
doc: Fix some obsolete references to av* tools as ff* tools
vqavideo: check chunk sizes before reading chunks
roqvideodec: check dimensions validity
qdm2: check array index before use, fix out of array accesses
mpegvideo: Do REBASE_PICTURE with byte pointers
Conflicts:
libavcodec/qdm2.c
libavcodec/roqvideodec.c
libavcodec/vqavideo.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/mpegvideo.h | 2 | ||||
-rw-r--r-- | libavcodec/qdm2.c | 2 | ||||
-rw-r--r-- | libavcodec/roqvideodec.c | 7 | ||||
-rw-r--r-- | libavcodec/vqavideo.c | 6 |
4 files changed, 10 insertions, 7 deletions
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index c0152fb863..5b980310c4 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -731,7 +731,7 @@ typedef struct MpegEncContext { #define REBASE_PICTURE(pic, new_ctx, old_ctx) (pic ? \ (pic >= old_ctx->picture && pic < old_ctx->picture+old_ctx->picture_count ?\ - &new_ctx->picture[pic - old_ctx->picture] : pic - (Picture*)old_ctx + (Picture*)new_ctx)\ + &new_ctx->picture[pic - old_ctx->picture] : (Picture*) ((uint8_t*)pic - (uint8_t*)old_ctx + (uint8_t*)new_ctx))\ : NULL) /* mpegvideo_enc common options */ diff --git a/libavcodec/qdm2.c b/libavcodec/qdm2.c index c8727c6b1c..f5ed707402 100644 --- a/libavcodec/qdm2.c +++ b/libavcodec/qdm2.c @@ -1258,7 +1258,7 @@ static void qdm2_decode_super_block (QDM2Context *q) for (i = 0; packet_bytes > 0; i++) { int j; - if (i>=FF_ARRAY_ELEMS(q->sub_packet_list_A)) { + if (i >= FF_ARRAY_ELEMS(q->sub_packet_list_A)) { SAMPLES_NEEDED_2("too many packet bytes"); return; } diff --git a/libavcodec/roqvideodec.c b/libavcodec/roqvideodec.c index c90939df04..6812f9af70 100644 --- a/libavcodec/roqvideodec.c +++ b/libavcodec/roqvideodec.c @@ -171,9 +171,10 @@ static av_cold int roq_decode_init(AVCodecContext *avctx) s->avctx = avctx; - if (avctx->width%16 || avctx->height%16) { - av_log_ask_for_sample(avctx, "dimensions not being a multiple of 16 are unsupported\n"); - return AVERROR_PATCHWELCOME; + if (avctx->width % 16 || avctx->height % 16) { + av_log(avctx, AV_LOG_ERROR, + "Dimensions must be a multiple of 16\n"); + return AVERROR_PATCHWELCOME; } s->width = avctx->width; diff --git a/libavcodec/vqavideo.c b/libavcodec/vqavideo.c index 22ec309f82..f78055f566 100644 --- a/libavcodec/vqavideo.c +++ b/libavcodec/vqavideo.c @@ -538,7 +538,8 @@ static int vqa_decode_chunk(VqaContext *s) chunk_size = bytestream2_get_be32(&s->gb); if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) { - av_log(s->avctx, AV_LOG_ERROR, "cbp0 chunk too large (0x%X bytes)\n", chunk_size); + av_log(s->avctx, AV_LOG_ERROR, "cbp0 chunk too large (%u bytes)\n", + chunk_size); return AVERROR_INVALIDDATA; } @@ -566,7 +567,8 @@ static int vqa_decode_chunk(VqaContext *s) chunk_size = bytestream2_get_be32(&s->gb); if (chunk_size > MAX_CODEBOOK_SIZE - s->next_codebook_buffer_index) { - av_log(s->avctx, AV_LOG_ERROR, "cbpz chunk too large (0x%X bytes)\n", chunk_size); + av_log(s->avctx, AV_LOG_ERROR, "cbpz chunk too large (%u bytes)\n", + chunk_size); return AVERROR_INVALIDDATA; } |