summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn McLear <john@mclear.co.uk>2013-12-16 03:07:50 -0800
committerJohn McLear <john@mclear.co.uk>2013-12-16 03:07:50 -0800
commit3d8edef9261b9793027bc999759f3b7e094aacd5 (patch)
treef576cc53f136cb753506cd288fca870c789cc8c7
parent58bbfd8a65e16581bc13b89f5898fdceb2563e0a (diff)
parentdd8af99e2e36e759fdc869c82a24a271742e2a5b (diff)
downloadetherpad-lite-3d8edef9261b9793027bc999759f3b7e094aacd5.zip
Merge pull request #2035 from lebrinkma/dont-die-on-bad-html
Add input validation for html param in setHTML()
-rw-r--r--doc/api/http_api.md15
-rw-r--r--src/node/db/API.js15
2 files changed, 17 insertions, 13 deletions
diff --git a/doc/api/http_api.md b/doc/api/http_api.md
index 281cc975..1ae2ea1c 100644
--- a/doc/api/http_api.md
+++ b/doc/api/http_api.md
@@ -285,16 +285,6 @@ sets the text of a pad
* `{code: 1, message:"padID does not exist", data: null}`
* `{code: 1, message:"text too long", data: null}`
-#### setHTML(padID, html)
- * API >= 1
-
-sets the text of a pad based on HTML, HTML must be well formed. Malformed HTML will send a warning to the API log
-
-*Example returns:*
- * `{code: 0, message:"ok", data: null}`
- * `{code: 1, message:"padID does not exist", data: null}`
-
-
#### getHTML(padID, [rev])
* API >= 1
@@ -304,15 +294,14 @@ returns the text of a pad formatted as HTML
* `{code: 0, message:"ok", data: {html:"Welcome Text<br>More Text"}}`
* `{code: 1, message:"padID does not exist", data: null}`
-#### setHTML(padID, text)
+#### setHTML(padID, html)
* API >= 1
-sets the html of a pad
+sets the text of a pad based on HTML, HTML must be well formed. Malformed HTML will send a warning to the API log.
*Example returns:*
* `{code: 0, message:"ok", data: null}`
* `{code: 1, message:"padID does not exist", data: null}`
- * `{code: 1, message:"text too long", data: null}`
#### getAttributePool(padID)
* API >= 1.2.8
diff --git a/src/node/db/API.js b/src/node/db/API.js
index 00be1918..98bc8029 100644
--- a/src/node/db/API.js
+++ b/src/node/db/API.js
@@ -382,8 +382,23 @@ exports.getHTML = function(padID, rev, callback)
});
}
+/**
+setHTML(padID, html) sets the text of a pad based on HTML
+
+Example returns:
+
+{code: 0, message:"ok", data: null}
+{code: 1, message:"padID does not exist", data: null}
+*/
exports.setHTML = function(padID, html, callback)
{
+ //html is required
+ if(typeof html != "string")
+ {
+ callback(new customError("html is no string","apierror"));
+ return;
+ }
+
//get the pad
getPadSafe(padID, true, function(err, pad)
{