From 3905caf25115f7728416e82b13deadd22ff2f19b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= Date: Sat, 15 Sep 2012 18:22:21 +0200 Subject: [PATCH] Document that the MPEG12 "fast" functions can read out of bounds. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is intentional (and a reason why fast usually should not be used), but a few people sent patches to "fix" this recently so it would be better to document this. Signed-off-by: Reimar Döffinger --- libavcodec/mpeg12.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c index 1bf857e5f4..1e7ff9cf6f 100644 --- a/libavcodec/mpeg12.c +++ b/libavcodec/mpeg12.c @@ -232,6 +232,11 @@ end: return 0; } +/** + * Note: this function can read out of range and crash for corrupt streams. + * Changing this would eat up any speed benefits it has. + * Do not use "fast" flag if you need the code to be robust. + */ static inline int mpeg1_fast_decode_block_inter(MpegEncContext *s, DCTELEM *block, int n) { int level, i, j, run; @@ -383,6 +388,11 @@ end: return 0; } +/** + * Note: this function can read out of range and crash for corrupt streams. + * Changing this would eat up any speed benefits it has. + * Do not use "fast" flag if you need the code to be robust. + */ static inline int mpeg2_fast_decode_block_non_intra(MpegEncContext *s, DCTELEM *block, int n) { @@ -523,6 +533,11 @@ static inline int mpeg2_decode_block_intra(MpegEncContext *s, DCTELEM *block, in return 0; } +/** + * Note: this function can read out of range and crash for corrupt streams. + * Changing this would eat up any speed benefits it has. + * Do not use "fast" flag if you need the code to be robust. + */ static inline int mpeg2_fast_decode_block_intra(MpegEncContext *s, DCTELEM *block, int n) { int level, dc, diff, j, run;