[FFmpeg-cvslog] avcodec/half2float: fix integer overflows in convertmantissa()

Paul B Mahol git at videolan.org
Wed Mar 3 13:42:39 EET 2021


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Wed Mar  3 12:37:02 2021 +0100| [3be33703c6e588c4df003340b37c89206afa4f2e] | committer: Paul B Mahol

avcodec/half2float: fix integer overflows in convertmantissa()

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

 libavcodec/half2float.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/libavcodec/half2float.h b/libavcodec/half2float.h
index 9cff12a309..fd11caffdf 100644
--- a/libavcodec/half2float.h
+++ b/libavcodec/half2float.h
@@ -23,16 +23,16 @@
 
 static uint32_t convertmantissa(uint32_t i)
 {
-    uint32_t m = i << 13; // Zero pad mantissa bits
-    uint32_t e = 0; // Zero exponent
+    int32_t m = i << 13; // Zero pad mantissa bits
+    int32_t e = 0; // Zero exponent
 
-    while (!(m & 0x00800000UL)){ // While not normalized
-        e -= 0x00800000UL; // Decrement exponent (1<<23)
+    while (!(m & 0x00800000)) { // While not normalized
+        e -= 0x00800000; // Decrement exponent (1<<23)
         m <<= 1; // Shift mantissa
     }
 
-    m &= ~0x00800000UL; // Clear leading 1 bit
-    e +=  0x38800000UL; // Adjust bias ((127-14)<<23)
+    m &= ~0x00800000; // Clear leading 1 bit
+    e +=  0x38800000; // Adjust bias ((127-14)<<23)
 
     return m | e; // Return combined number
 }



More information about the ffmpeg-cvslog mailing list