Bug 1287266 - Integer overflow check in WebSocketChannel::ProcessInput, r=mcmanus
This commit is contained in:
@@ -1569,9 +1569,13 @@ WebSocketChannel::ProcessInput(uint8_t *buffer, uint32_t count)
|
||||
LOG(("WebSocketChannel::ProcessInput: payload %lld avail %lu\n",
|
||||
payloadLength64, avail));
|
||||
|
||||
if (payloadLength64 + mFragmentAccumulator > mMaxMessageSize) {
|
||||
CheckedInt<int64_t> payloadLengthChecked(payloadLength64);
|
||||
payloadLengthChecked += mFragmentAccumulator;
|
||||
if (!payloadLengthChecked.isValid() || payloadLengthChecked.value() >
|
||||
mMaxMessageSize) {
|
||||
return NS_ERROR_FILE_TOO_BIG;
|
||||
}
|
||||
|
||||
uint32_t payloadLength = static_cast<uint32_t>(payloadLength64);
|
||||
|
||||
if (avail < payloadLength)
|
||||
|
||||
Reference in New Issue
Block a user