From 2c3eec2fb2004961119d7dd7c807d6dbe7e58a79 Mon Sep 17 00:00:00 2001 From: didiercolens <72804192+didiercolens@users.noreply.github.com> Date: Fri, 12 Jan 2024 13:18:25 +0100 Subject: [PATCH] fix race condition in error handling: https://github.com/expressjs/multer/pull/1177 fix leak: https://github.com/expressjs/multer/pull/1120 --- lib/make-middleware.js | 10 +++++++++- package.json | 5 +++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/make-middleware.js b/lib/make-middleware.js index b033cbd9..ee4f29ef 100644 --- a/lib/make-middleware.js +++ b/lib/make-middleware.js @@ -42,13 +42,20 @@ function makeMiddleware (setup) { var pendingWrites = new Counter() var uploadedFiles = [] + function requestError(error) { + busboy.destroy(error); + } + function done (err) { if (isDone) return isDone = true + req.removeListener('error', requestError) req.unpipe(busboy) drainStream(req) - busboy.removeAllListeners() + process.nextTick(function () { + busboy.removeAllListeners() + }); onFinished(req, function () { next(err) }) } @@ -174,6 +181,7 @@ function makeMiddleware (setup) { indicateDone() }) + req.on('error', requestError) req.pipe(busboy) } } diff --git a/package.json b/package.json index 6aec9996..41f7d2f3 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,12 @@ { - "name": "multer", + "name": "@bdb/multer", "description": "Middleware for handling `multipart/form-data`.", "version": "1.4.4", "contributors": [ "Hage Yaapa (http://www.hacksparrow.com)", "Jaret Pfluger ", - "Linus Unnebäck " + "Linus Unnebäck ", + "Didier Colens " ], "license": "MIT", "repository": "expressjs/multer",