[FFmpeg-devel] [PATCH] libavcodec/iff: Use unsigned to avoid undefined behaviour
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Fri Aug 2 23:29:16 EEST 2019
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>
---
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
--
2.21.0
More information about the ffmpeg-devel
mailing list