diff options
author | John McLear <john@mclear.co.uk> | 2014-12-27 18:36:13 +0100 |
---|---|---|
committer | John McLear <john@mclear.co.uk> | 2014-12-27 18:36:13 +0100 |
commit | 7df944b3fd257e2f35bfea93f887c17357b7d161 (patch) | |
tree | 88d8af380bcafb383cf60151cea2f6d2a4ff0b8d /src/node/handler/PadMessageHandler.js | |
parent | ddd6a8ebcef551b7b261856c031b0a68b416128d (diff) | |
parent | 07a6702363a2b3cb195422cbc618de221a83b278 (diff) | |
download | etherpad-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.js | 11 |
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) { |