[FFmpeg-devel] [PATCH] avcodec/ccaption_dec: Add a blank like at the end to avoid rollup reading from outside

Alexander Strasser eclipse7 at gmx.net
Mon Apr 22 10:49:41 EEST 2019


Hi Michael!

On 2019-04-20 18:11 +0200, Michael Niedermayer wrote:
> Fixes: index 20 out of bounds for type 'const char *[4][128]'

Somehow I don't understand this diagnostic message. It says "index
20 out of bounds for [4][128]".

You're change looks like an off-by-one fix.

Sorry; I'm surely missing something as I didn't look up the code,
just thought I might as well ask...


  Alexander

> Fixes: 14367/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CCAPTION_fuzzer-5718819672162304
>
> 14367/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CCAPTION_fuzzer-5718819672162304
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
>  libavcodec/ccaption_dec.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c
> index 09ceb1b3bf..bf3563a0bc 100644
> --- a/libavcodec/ccaption_dec.c
> +++ b/libavcodec/ccaption_dec.c
> @@ -212,10 +212,10 @@ static const unsigned char pac2_attribs[32][3] = // Color, font, ident
>
>  struct Screen {
>      /* +1 is used to compensate null character of string */
> -    uint8_t characters[SCREEN_ROWS][SCREEN_COLUMNS+1];
> -    uint8_t charsets[SCREEN_ROWS][SCREEN_COLUMNS+1];
> -    uint8_t colors[SCREEN_ROWS][SCREEN_COLUMNS+1];
> -    uint8_t fonts[SCREEN_ROWS][SCREEN_COLUMNS+1];
> +    uint8_t characters[SCREEN_ROWS+1][SCREEN_COLUMNS+1];
> +    uint8_t charsets[SCREEN_ROWS+1][SCREEN_COLUMNS+1];
> +    uint8_t colors[SCREEN_ROWS+1][SCREEN_COLUMNS+1];
> +    uint8_t fonts[SCREEN_ROWS+1][SCREEN_COLUMNS+1];
>      /*
>       * Bitmask of used rows; if a bit is not set, the
>       * corresponding row is not used.
> --
> 2.21.0


More information about the ffmpeg-devel mailing list