summaryrefslogtreecommitdiff
path: root/libavcodec/agm.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2019-06-30 19:45:29 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2019-07-19 21:42:38 +0200
commit6ebbfb377f7b6dcbf6a5c85b10109e838bd6e675 (patch)
treed0dfa09a857006c2edd210323bf4ea07376c4e8b /libavcodec/agm.c
parent7d3581e6bbec309ca0cc617c37cf6e87547764ef (diff)
avcodec/agm: Fix overflow of signed shift
Fixes: left shift of 1 by 31 places cannot be represented in type 'int' Fixes: 15328/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AGM_fuzzer-5637545171353600 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/agm.c')
-rw-r--r--libavcodec/agm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/agm.c b/libavcodec/agm.c
index a499c09082..2c4c9805e9 100644
--- a/libavcodec/agm.c
+++ b/libavcodec/agm.c
@@ -918,7 +918,7 @@ static void get_tree_codes(uint32_t *codes, Node *nodes, int idx, uint32_t pfx,
codes[idx] = pfx;
} else if (idx >= 0) {
get_tree_codes(codes, nodes, nodes[idx].child[0], pfx + (0 << bitpos), bitpos + 1);
- get_tree_codes(codes, nodes, nodes[idx].child[1], pfx + (1 << bitpos), bitpos + 1);
+ get_tree_codes(codes, nodes, nodes[idx].child[1], pfx + (1U << bitpos), bitpos + 1);
}
}