Skip to content

Commit 3917a1a

Browse files
committed
Fix 2 instances of Undefined Behavior
1 parent 865d52d commit 3917a1a

2 files changed

Lines changed: 4 additions & 2 deletions

File tree

src/entropy/ANSRangeDecoder.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ ANSRangeDecoder::ANSRangeDecoder(InputBitStream& bitstream, int order, int chunk
5050
throw invalid_argument(ss.str());
5151
}
5252

53-
_chunkSize = min(chunkSize << (8 * order), MAX_CHUNK_SIZE);
53+
const uint64 scaledChunkSize = uint64(chunkSize) << (8 * order);
54+
_chunkSize = uint(min(scaledChunkSize, uint64(MAX_CHUNK_SIZE)));
5455
_order = order;
5556
const int dim = 255 * order + 1;
5657
_freqs = new uint[dim * 256];

src/entropy/ANSRangeEncoder.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ ANSRangeEncoder::ANSRangeEncoder(OutputBitStream& bitstream, int order, int chun
5656
throw invalid_argument(ss.str());
5757
}
5858

59-
_chunkSize = min(chunkSize << (8 * order), MAX_CHUNK_SIZE);
59+
const uint64 scaledChunkSize = uint64(chunkSize) << (8 * order);
60+
_chunkSize = uint(min(scaledChunkSize, uint64(MAX_CHUNK_SIZE)));
6061
_order = order;
6162
const int dim = 255 * order + 1;
6263
_symbols = new ANSEncSymbol[dim * 256];

0 commit comments

Comments
 (0)