You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ga...@apache.org on 2017/01/11 11:45:59 UTC

[12/15] couchdb-nano git commit: Validate docName parameter to avoid db delete

Validate docName parameter to avoid db delete


Project: http://git-wip-us.apache.org/repos/asf/couchdb-nano/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-nano/commit/3db2d953
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-nano/tree/3db2d953
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-nano/diff/3db2d953

Branch: refs/heads/master
Commit: 3db2d953b08328d366d10756dbe49874ec8041d5
Parents: a255f68
Author: Rami Alia <ra...@gmail.com>
Authored: Mon Apr 25 13:42:52 2016 -0400
Committer: Glynn Bird <gl...@gmail.com>
Committed: Wed Oct 26 14:37:28 2016 +0100

----------------------------------------------------------------------
 lib/nano.js                           | 18 ++++++++++++------
 tests/integration/document/destroy.js |  8 ++++++++
 2 files changed, 20 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-nano/blob/3db2d953/lib/nano.js
----------------------------------------------------------------------
diff --git a/lib/nano.js b/lib/nano.js
index 79ea56e..440cdde 100644
--- a/lib/nano.js
+++ b/lib/nano.js
@@ -396,12 +396,18 @@ module.exports = exports = nano = function dbScope(cfg) {
 
     // http://docs.couchdb.org/en/latest/api/document/common.html#delete--db-docid
     function destroyDoc(docName, rev, callback) {
-      return relax({
-        db: dbName,
-        doc: docName,
-        method: 'DELETE',
-        qs: {rev: rev}
-      }, callback);
+      if(!docName) {
+        if(callback)
+          callback("Invalid doc id", null);
+      }
+      else {
+        return relax({
+          db: dbName,
+          doc: docName,
+          method: 'DELETE',
+          qs: {rev: rev}
+        }, callback);
+      }
     }
 
     // http://docs.couchdb.org/en/latest/api/document/common.html#get--db-docid

http://git-wip-us.apache.org/repos/asf/couchdb-nano/blob/3db2d953/tests/integration/document/destroy.js
----------------------------------------------------------------------
diff --git a/tests/integration/document/destroy.js b/tests/integration/document/destroy.js
index 0d6bdf7..7e07448 100644
--- a/tests/integration/document/destroy.js
+++ b/tests/integration/document/destroy.js
@@ -29,6 +29,14 @@ it('should insert a document', function(assert) {
   });
 });
 
+it('should not delete a db', function(assert) {
+  db.destroy(undefined, undefined, function(error, response) {
+    assert.equal(error, 'Invalid doc id', 'validated delete parameters');
+    assert.equal(response, null, 'ok!');
+    assert.end();
+  });
+});
+
 it('should delete a document', function(assert) {
   db.destroy('foobaz', rev, function(error, response) {
     assert.equal(error, null, 'deleted foo');