[FFmpeg-cvslog] lavu/opt: check int lists length for overflow.

Nicolas George git at videolan.org
Sat Apr 13 20:47:47 CEST 2013


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Sat Apr 13 11:46:56 2013 +0200| [9e8e03de38b3deb6bee546a37e1a3ff05cf5f746] | committer: Nicolas George

lavu/opt: check int lists length for overflow.

Also add parens on macro arguments.

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

 libavutil/opt.h |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavutil/opt.h b/libavutil/opt.h
index e368259..7f7b54e 100644
--- a/libavutil/opt.h
+++ b/libavutil/opt.h
@@ -668,8 +668,10 @@ int av_opt_set_video_rate(void *obj, const char *name, AVRational val, int searc
  * @param flags  search flags
  */
 #define av_opt_set_int_list(obj, name, val, term, flags) \
-    av_opt_set_bin(obj, name, (const uint8_t *)val, \
-                   av_int_list_length(val, term) * sizeof(*val), flags)
+    (av_int_list_length(val, term) > INT_MAX / sizeof(*(val)) ? \
+     AVERROR(EINVAL) : \
+     av_opt_set_bin(obj, name, (const uint8_t *)(val), \
+                    av_int_list_length(val, term) * sizeof(*(val)), flags))
 /**
  * @}
  */



More information about the ffmpeg-cvslog mailing list