From 21d010415cce03032f2f94ea4f8d7d3eaecd2284 Mon Sep 17 00:00:00 2001 From: Rob Date: Wed, 16 Jun 2021 07:09:59 +0200 Subject: [PATCH] Added validation to check for width and height in headers --- lib/types/multipart.js | 15 +++++++++++++-- package.json | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/types/multipart.js b/lib/types/multipart.js index 5816647..602ab9e 100644 --- a/lib/types/multipart.js +++ b/lib/types/multipart.js @@ -19,6 +19,8 @@ var RE_BOUNDARY = /^boundary$/i, RE_CHARSET = /^charset$/i, RE_FILENAME = /^filename$/i, RE_NAME = /^name$/i; + RE_WIDTH = /^width$/i; + RE_HEIGHT = /^height$/i; Multipart.detect = /^multipart\/form-data/i; function Multipart(boy, cfg) { @@ -128,6 +130,8 @@ function Multipart(boy, cfg) { charset, encoding, filename, + width, + height, nsize = 0; if (header['content-type']) { @@ -155,11 +159,18 @@ function Multipart(boy, cfg) { for (i = 0, len = parsed.length; i < len; ++i) { if (RE_NAME.test(parsed[i][0])) { fieldname = parsed[i][1]; - } else if (RE_FILENAME.test(parsed[i][0])) { + } + if (RE_FILENAME.test(parsed[i][0])) { filename = parsed[i][1]; if (!preservePath) filename = basename(filename); } + if(RE_WIDTH.test(parsed[i][0])){ + width = parseFloat(parsed[i][1]) + } + if(RE_HEIGHT.test(parsed[i][0])){ + height = parseFloat(parsed[i][1]) + } } } else return skipPart(part); @@ -211,7 +222,7 @@ function Multipart(boy, cfg) { cb(); } }; - boy.emit('file', fieldname, file, filename, encoding, contype); + boy.emit('file', fieldname, file, filename, encoding, contype, width, height); onData = function(data) { if ((nsize += data.length) > fileSizeLimit) { diff --git a/package.json b/package.json index dc7b3ac..2706b89 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { "name": "busboy", - "version": "0.3.1", + "version": "0.3.2", "author": "Brian White ", "description": "A streaming parser for HTML form data for node.js", "main": "./lib/main",