Socket
Socket
Sign inDemoInstall

busboy

Package Overview
Dependencies
2
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.13 to 0.0.14

44

lib/types/multipart.js

@@ -28,5 +28,5 @@ // TODO:

defCharset = cfg.defCharset || 'utf8',
fileopts = typeof cfg.fileHwm === 'number'
? { highWaterMark: cfg.fileHwm }
: {};
fileopts = (typeof cfg.fileHwm === 'number'
? { highWaterMark: cfg.fileHwm }
: {});

@@ -71,3 +71,3 @@ for (i = 0, len = parsedConType.length; i < len; ++i) {

if (cfg.highWaterMark)
parserCfg.highWaterMark = cfg.highWaterMark
parserCfg.highWaterMark = cfg.highWaterMark;
this.parser = new Dicer(parserCfg);

@@ -85,4 +85,5 @@ this.parser.on('drain', function() {

self.parser.removeListener('part', onPart);
self.parser.on('part', skipParts);
return;
self.parser.on('part', skipPart);
boy.emit('partsLimit');
return skipPart(part);
}

@@ -110,3 +111,3 @@ part.on('header', function(header) {

if (!RE_FIELD.test(parsed[0]))
return;
return skipPart(part);
for (i = 0, len = parsed.length; i < len; ++i) {

@@ -128,3 +129,3 @@ if (RE_NAME.test(parsed[i][0])) {

} else
return;
return skipPart(part);

@@ -139,4 +140,9 @@ if (header['content-transfer-encoding'])

// file/binary field
if (nfiles === filesLimit)
return;
if (nfiles === filesLimit) {
if (!boy.hitFilesLimit) {
boy.hitFilesLimit = true;
boy.emit('filesLimit');
}
return skipPart(part);
}

@@ -164,3 +170,5 @@ ++nfiles;

if ((nsize += data.length) > fileSizeLimit) {
file.push(data.slice(0, (fileSizeLimit - nsize)));
var extralen = (fileSizeLimit - (nsize - data.length));
if (extralen > 0)
file.push(data.slice(0, extralen));
file.emit('limit');

@@ -177,4 +185,9 @@ part.removeAllListeners('data');

// non-file field
if (nfields === fieldsLimit)
return;
if (nfields === fieldsLimit) {
if (!boy.hitFieldsLimit) {
boy.hitFieldsLimit = true;
boy.emit('fieldsLimit');
}
return skipPart(part);
}

@@ -187,3 +200,4 @@ ++nfields;

if ((nsize += data.length) > fieldSizeLimit) {
buffer += data.toString('binary', 0, (fieldSizeLimit - nsize));
var extralen = (fieldSizeLimit - (nsize - data.length));
buffer += data.toString('binary', 0, extralen);
truncated = true;

@@ -233,3 +247,3 @@ part.removeAllListeners('data');

function skipParts(part) {
function skipPart(part) {
part.resume();

@@ -236,0 +250,0 @@ }

@@ -49,4 +49,9 @@ var jsencoding = require('../../deps/encoding/encoding'),

UrlEncoded.prototype.write = function(data, cb) {
if (this._fields === this.fieldsLimit)
if (this._fields === this.fieldsLimit) {
if (!boy.hitFieldsLimit) {
this.boy.hitFieldsLimit = true;
this.boy.emit('fieldsLimit');
}
return cb();
}

@@ -53,0 +58,0 @@ var idxeq, idxamp, i, p = 0, len = data.length;

{ "name": "busboy",
"version": "0.0.13",
"version": "0.0.14",
"author": "Brian White <mscdex@mscdex.net>",

@@ -4,0 +4,0 @@ "description": "A streaming parser for HTML form data for node.js",

@@ -193,3 +193,9 @@ Description

* **partsLimit**() - Emitted when specified `parts` limit has been reached. No more 'file' or 'field' events will be emitted.
* **filesLimit**() - Emitted when specified `files` limit has been reached. No more 'file' events will be emitted.
* **fieldsLimit**() - Emitted when specified `fields` limit has been reached. No more 'field' events will be emitted.
**Note:** The `stream` passed in on the 'file' event will also emit a 'limit' event (no arguments) if the `fileSize` limit is reached. If this happens, no more data will be available on the stream.

@@ -196,0 +202,0 @@

@@ -76,2 +76,26 @@ var Multipart = require('../lib/types/multipart'),

},
{ source: [
['-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k',
'Content-Disposition: form-data; name="file_name_0"',
'',
'super alpha file',
'-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k',
'Content-Disposition: form-data; name="upload_file_0"; filename="1k_a.dat"',
'Content-Type: application/octet-stream',
'',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'-----------------------------paZqsnEHRufoShdX6fh0lUhXBP4k--'
].join('\r\n')
],
boundary: '---------------------------paZqsnEHRufoShdX6fh0lUhXBP4k',
limits: {
fileSize: 13,
fieldSize: 5
},
expected: [
['field', 'file_name_0', 'super', true, false],
['file', 'upload_file_0', 13, true, '1k_a.dat', '7bit', 'application/octet-stream']
],
what: 'Fields and files (limits)'
},
];

@@ -78,0 +102,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc