From 7835215f178b0807c962c17c1cb7563e3492bf92 Mon Sep 17 00:00:00 2001 From: Stephen Whitmore Date: Tue, 24 May 2016 11:32:41 -0700 Subject: [PATCH] Improve input checking on "add". --- package.json | 1 + src/api/add.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/package.json b/package.json index 0cfa01255..90e68d2bb 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "flatmap": "0.0.3", "glob": "^7.0.3", "ipfs-merkle-dag": "^0.6.0", + "isstream": "^0.1.2", "multiaddr": "^2.0.0", "multipart-stream": "^2.0.1", "ndjson": "^1.4.3", diff --git a/src/api/add.js b/src/api/add.js index 732442553..7e96a4145 100644 --- a/src/api/add.js +++ b/src/api/add.js @@ -1,5 +1,6 @@ 'use strict' +const isStream = require('isstream') const Wreck = require('wreck') const addToDagNodesTransform = require('../add-to-dagnode-transform') @@ -10,6 +11,14 @@ module.exports = (send) => { opts = {} } + var good = Buffer.isBuffer(files) || + isStream.isReadable(files) || + Array.isArray(files) + + if (!good) { + return cb(new Error('"files" must be a buffer, readable stream, or array of objects')) + } + var sendWithTransform = send.withTransform(addToDagNodesTransform) return sendWithTransform('add', null, opts, files, cb)