summaryrefslogtreecommitdiff
path: root/src/libFLAC/bitreader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libFLAC/bitreader.c')
-rw-r--r--src/libFLAC/bitreader.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libFLAC/bitreader.c b/src/libFLAC/bitreader.c
index 3df4d02c..d2c058d9 100644
--- a/src/libFLAC/bitreader.c
+++ b/src/libFLAC/bitreader.c
@@ -462,7 +462,7 @@ FLAC__bool FLAC__bitreader_read_raw_int32(FLAC__BitReader *br, FLAC__int32 *val,
return false;
/* sign-extend *val assuming it is currently bits wide. */
/* From: https://graphics.stanford.edu/~seander/bithacks.html#FixedSignExtend */
- mask = 1u << (bits - 1);
+ mask = bits >= 33 ? 0 : 1u << (bits - 1);
*val = (uval ^ mask) - mask;
return true;
}