git.videolan.org
/
ffmpeg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
avcodec/scpr: mask bits to prevent out of array read
[ffmpeg.git]
/
libavcodec
/
scpr.c
diff --git
a/libavcodec/scpr.c
b/libavcodec/scpr.c
index
46f072c
..
f6d1e45
100644
(file)
--- a/
libavcodec/scpr.c
+++ b/
libavcodec/scpr.c
@@
-488,7
+488,7
@@
static int decompress_i(AVCodecContext *avctx, uint32_t *dst, int linesize)
if (avctx->bits_per_coded_sample == 16) {
cx1 = (clr & 0x3F00) >> 2;
if (avctx->bits_per_coded_sample == 16) {
cx1 = (clr & 0x3F00) >> 2;
- cx = (clr & 0x
F
FFFFF) >> 16;
+ cx = (clr & 0x
3
FFFFF) >> 16;
} else {
cx1 = (clr & 0xFC00) >> 4;
cx = (clr & 0xFFFFFF) >> 18;
} else {
cx1 = (clr & 0xFC00) >> 4;
cx = (clr & 0xFFFFFF) >> 18;
@@
-726,7
+726,7
@@
static int decompress_p(AVCodecContext *avctx,
if (avctx->bits_per_coded_sample == 16) {
cx1 = (clr & 0x3F00) >> 2;
if (avctx->bits_per_coded_sample == 16) {
cx1 = (clr & 0x3F00) >> 2;
- cx = (clr & 0x
F
FFFFF) >> 16;
+ cx = (clr & 0x
3
FFFFF) >> 16;
} else {
cx1 = (clr & 0xFC00) >> 4;
cx = (clr & 0xFFFFFF) >> 18;
} else {
cx1 = (clr & 0xFC00) >> 4;
cx = (clr & 0xFFFFFF) >> 18;