[FFmpeg-cvslog] ansi: by design nb_args may exceed the size of the args array, so guard accordingly

Peter Ross git at videolan.org
Sun Oct 14 16:04:42 CEST 2012


ffmpeg | branch: master | Peter Ross <pross at xvid.org> | Sun Oct 14 21:50:09 2012 +1100| [0ea55365b91c250012ac8a80be5f0ebacd4fd55d] | committer: Michael Niedermayer

ansi: by design nb_args may exceed the size of the args array, so guard accordingly

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0ea55365b91c250012ac8a80be5f0ebacd4fd55d
---

 libavcodec/ansi.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/ansi.c b/libavcodec/ansi.c
index 6bfd08c..d84b395 100644
--- a/libavcodec/ansi.c
+++ b/libavcodec/ansi.c
@@ -299,7 +299,7 @@ static int execute_code(AVCodecContext * avctx, int c)
                 s->attributes |= 1 << (m - 1);
             } else if (m >= 30 && m <= 37) {
                 s->fg = ansi_to_cga[m - 30];
-            } else if (m == 38 && i + 2 < s->nb_args && s->args[i + 1] == 5 && s->args[i + 2] < 256) {
+            } else if (m == 38 && i + 2 < FFMIN(s->nb_args, MAX_NB_ARGS) && s->args[i + 1] == 5 && s->args[i + 2] < 256) {
                 int index = s->args[i + 2];
                 s->fg = index < 16 ? ansi_to_cga[index] : index;
                 i += 2;
@@ -307,7 +307,7 @@ static int execute_code(AVCodecContext * avctx, int c)
                 s->fg = ansi_to_cga[DEFAULT_FG_COLOR];
             } else if (m >= 40 && m <= 47) {
                 s->bg = ansi_to_cga[m - 40];
-            } else if (m == 48 && i + 2 < s->nb_args && s->args[i + 1] == 5 && s->args[i + 2] < 256) {
+            } else if (m == 48 && i + 2 < FFMIN(s->nb_args, MAX_NB_ARGS) && s->args[i + 1] == 5 && s->args[i + 2] < 256) {
                 int index = s->args[i + 2];
                 s->bg = index < 16 ? ansi_to_cga[index] : index;
                 i += 2;



More information about the ffmpeg-cvslog mailing list