aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/websocket.rs
diff options
context:
space:
mode:
authorNikki <nikkicubed@gmail.com>2015-12-29 17:08:46 -0700
committerNikki <nikkicubed@gmail.com>2015-12-29 17:08:46 -0700
commit773a15d28a39f19f4d54c14b060bae670b55aaaf (patch)
tree9760f71481d77064341091e1070b4e1f95f6263a /components/script/dom/websocket.rs
parent20edf213525e78e4f23337b3aad4f5113249947e (diff)
downloadservo-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.rs6
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);