diff options
author | Nikki <nikkicubed@gmail.com> | 2015-12-29 17:08:46 -0700 |
---|---|---|
committer | Nikki <nikkicubed@gmail.com> | 2015-12-29 17:08:46 -0700 |
commit | 773a15d28a39f19f4d54c14b060bae670b55aaaf (patch) | |
tree | 9760f71481d77064341091e1070b4e1f95f6263a /components/script/dom/websocket.rs | |
parent | 20edf213525e78e4f23337b3aad4f5113249947e (diff) | |
download | servo-773a15d28a39f19f4d54c14b060bae670b55aaaf.tar.gz servo-773a15d28a39f19f4d54c14b060bae670b55aaaf.zip |
added a check for buffer overflow
Diffstat (limited to 'components/script/dom/websocket.rs')
-rw-r--r-- | components/script/dom/websocket.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs index 4199ff7094e..014d4100dd9 100644 --- a/components/script/dom/websocket.rs +++ b/components/script/dom/websocket.rs @@ -299,7 +299,11 @@ impl WebSocket { let chan = global.r().networking_task_source(); let address = Trusted::new(self, chan.clone()); - self.buffered_amount.set(self.buffered_amount.get() + data_byte_len); + match data_byte_len.checked_add(self.buffered_amount.get()) { + None => return Ok(false), + Some(new_amount) => self.buffered_amount.set(new_amount) + }; + // self.buffered_amount.set(self.buffered_amount.get() + data_byte_len); if return_after_buffer { return Ok(false); |