[FFmpeg-cvslog] lavu: check av_clip*() limits

Michael Niedermayer git at videolan.org
Fri Jan 4 22:58:18 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Wed Nov 21 22:53:06 2012 +0100| [498e1c6bb963eb7e611ba72a9c2ecad9b306e6b0] | committer: Michael Niedermayer

lavu: check av_clip*() limits

This code cannot use av_assert* due to circular header dependancies

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

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

 libavutil/common.h |    9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/libavutil/common.h b/libavutil/common.h
index 0f36309..3adb1f0 100644
--- a/libavutil/common.h
+++ b/libavutil/common.h
@@ -97,6 +97,9 @@ av_const int av_log2_16bit(unsigned v);
  */
 static av_always_inline av_const int av_clip_c(int a, int amin, int amax)
 {
+#if defined(HAVE_AV_CONFIG_H) && ASSERT_LEVEL >= 2
+    if (amin > amax) abort();
+#endif
     if      (a < amin) return amin;
     else if (a > amax) return amax;
     else               return a;
@@ -111,6 +114,9 @@ static av_always_inline av_const int av_clip_c(int a, int amin, int amax)
  */
 static av_always_inline av_const int64_t av_clip64_c(int64_t a, int64_t amin, int64_t amax)
 {
+#if defined(HAVE_AV_CONFIG_H) && ASSERT_LEVEL >= 2
+    if (amin > amax) abort();
+#endif
     if      (a < amin) return amin;
     else if (a > amax) return amax;
     else               return a;
@@ -216,6 +222,9 @@ static av_always_inline int av_sat_dadd32_c(int a, int b)
  */
 static av_always_inline av_const float av_clipf_c(float a, float amin, float amax)
 {
+#if defined(HAVE_AV_CONFIG_H) && ASSERT_LEVEL >= 2
+    if (amin > amax) abort();
+#endif
     if      (a < amin) return amin;
     else if (a > amax) return amax;
     else               return a;



More information about the ffmpeg-cvslog mailing list