[FFmpeg-cvslog] avutil/softfloat: Fix undefined shift in av_add_sf()

Michael Niedermayer git at videolan.org
Fri Oct 10 20:03:20 CEST 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Fri Oct 10 19:36:12 2014 +0200| [171d971dbf046c25bf3b4da4eaa26cc645ed8998] | committer: Michael Niedermayer

avutil/softfloat: Fix undefined shift in av_add_sf()

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

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

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

diff --git a/libavutil/softfloat.h b/libavutil/softfloat.h
index fc083e5..8647e6a 100644
--- a/libavutil/softfloat.h
+++ b/libavutil/softfloat.h
@@ -104,8 +104,10 @@ static inline av_const int av_cmp_sf(SoftFloat a, SoftFloat b){
 
 static inline av_const SoftFloat av_add_sf(SoftFloat a, SoftFloat b){
     int t= a.exp - b.exp;
-    if(t<0) return av_normalize1_sf((SoftFloat){b.exp, b.mant + (a.mant >> (-t))});
-    else    return av_normalize1_sf((SoftFloat){a.exp, a.mant + (b.mant >>   t )});
+    if      (t <-31) return b;
+    else if (t <  0) return av_normalize1_sf((SoftFloat){b.exp, b.mant + (a.mant >> (-t))});
+    else if (t < 32) return av_normalize1_sf((SoftFloat){a.exp, a.mant + (b.mant >>   t )});
+    else             return a;
 }
 
 static inline av_const SoftFloat av_sub_sf(SoftFloat a, SoftFloat b){



More information about the ffmpeg-cvslog mailing list