summaryrefslogtreecommitdiff
path: root/src/node/handler/PadMessageHandler.js
diff options
context:
space:
mode:
authorJohn McLear <john@mclear.co.uk>2014-12-27 18:36:13 +0100
committerJohn McLear <john@mclear.co.uk>2014-12-27 18:36:13 +0100
commit7df944b3fd257e2f35bfea93f887c17357b7d161 (patch)
tree88d8af380bcafb383cf60151cea2f6d2a4ff0b8d /src/node/handler/PadMessageHandler.js
parentddd6a8ebcef551b7b261856c031b0a68b416128d (diff)
parent07a6702363a2b3cb195422cbc618de221a83b278 (diff)
downloadetherpad-lite-7df944b3fd257e2f35bfea93f887c17357b7d161.zip
Merge pull request #2404 from webzwo0i/sanity-in-atext
block changeset if it deletes more lines than exist in the whole pad
Diffstat (limited to 'src/node/handler/PadMessageHandler.js')
-rw-r--r--src/node/handler/PadMessageHandler.js11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/node/handler/PadMessageHandler.js b/src/node/handler/PadMessageHandler.js
index 7cdefc65..68686c9e 100644
--- a/src/node/handler/PadMessageHandler.js
+++ b/src/node/handler/PadMessageHandler.js
@@ -742,7 +742,16 @@ function handleUserChanges(data, cb)
return callback(new Error("Can't apply USER_CHANGES "+changeset+" with oldLen " + Changeset.oldLen(changeset) + " to document of length " + prevText.length));
}
- pad.appendRevision(changeset, thisSession.author);
+ try
+ {
+ pad.appendRevision(changeset, thisSession.author);
+ }
+ catch(e)
+ {
+ client.json.send({disconnect:"badChangeset"});
+ stats.meter('failedChangesets').mark();
+ return callback(e)
+ }
var correctionChangeset = _correctMarkersInPad(pad.atext, pad.pool);
if (correctionChangeset) {