[FFmpeg-cvslog] libavcodec/iff: Use unsigned to avoid undefined behaviour
Andreas Rheinhardt
git at videolan.org
Mon Aug 5 20:50:57 EEST 2019
ffmpeg | branch: release/4.2 | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Fri Aug 2 22:29:16 2019 +0200| [34a40aeb73fef1f08eaf603d9770969795e85de8] | committer: Michael Niedermayer
libavcodec/iff: Use unsigned to avoid undefined behaviour
The initialization of the uint32_t plane32_lut matrix uses left shifts
of the form 1 << plane; plane can be as big as 31 which means that this
is undefined behaviour as 1 will be simply an int. So make it unsigned
to avoid this.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
Reviewed-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit f12e662a3d3f489eec887b5f2ab20a550caed9cf)
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=34a40aeb73fef1f08eaf603d9770969795e85de8
---
libavcodec/iff.c | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/libavcodec/iff.c b/libavcodec/iff.c
index 7f1c589d7c..fc7bfad731 100644
--- a/libavcodec/iff.c
+++ b/libavcodec/iff.c
@@ -111,23 +111,23 @@ static const uint64_t plane8_lut[8][256] = {
LUT8(4), LUT8(5), LUT8(6), LUT8(7),
};
-#define LUT32(plane) { \
- 0, 0, 0, 0, \
- 0, 0, 0, 1 << plane, \
- 0, 0, 1 << plane, 0, \
- 0, 0, 1 << plane, 1 << plane, \
- 0, 1 << plane, 0, 0, \
- 0, 1 << plane, 0, 1 << plane, \
- 0, 1 << plane, 1 << plane, 0, \
- 0, 1 << plane, 1 << plane, 1 << plane, \
- 1 << plane, 0, 0, 0, \
- 1 << plane, 0, 0, 1 << plane, \
- 1 << plane, 0, 1 << plane, 0, \
- 1 << plane, 0, 1 << plane, 1 << plane, \
- 1 << plane, 1 << plane, 0, 0, \
- 1 << plane, 1 << plane, 0, 1 << plane, \
- 1 << plane, 1 << plane, 1 << plane, 0, \
- 1 << plane, 1 << plane, 1 << plane, 1 << plane, \
+#define LUT32(plane) { \
+ 0, 0, 0, 0, \
+ 0, 0, 0, 1U << plane, \
+ 0, 0, 1U << plane, 0, \
+ 0, 0, 1U << plane, 1U << plane, \
+ 0, 1U << plane, 0, 0, \
+ 0, 1U << plane, 0, 1U << plane, \
+ 0, 1U << plane, 1U << plane, 0, \
+ 0, 1U << plane, 1U << plane, 1U << plane, \
+ 1U << plane, 0, 0, 0, \
+ 1U << plane, 0, 0, 1U << plane, \
+ 1U << plane, 0, 1U << plane, 0, \
+ 1U << plane, 0, 1U << plane, 1U << plane, \
+ 1U << plane, 1U << plane, 0, 0, \
+ 1U << plane, 1U << plane, 0, 1U << plane, \
+ 1U << plane, 1U << plane, 1U << plane, 0, \
+ 1U << plane, 1U << plane, 1U << plane, 1U << plane, \
}
// 32 planes * 4-bit mask * 4 lookup tables each
More information about the ffmpeg-cvslog
mailing list