From 5b15be1f3b8d4cbc8fb0b3f7eaf62aa236506cbd Mon Sep 17 00:00:00 2001 From: Andrea Vos Date: Wed, 31 May 2023 12:55:56 +0200 Subject: [PATCH] =?UTF-8?q?error=20handling=20=E2=80=93=20cleaner=20logs?= =?UTF-8?q?=20for=20invalid=20image=20uploads?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/routes/images.js | 6 +++++- src/error.js | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/server/routes/images.js b/server/routes/images.js index ae2c88c22..138baec30 100644 --- a/server/routes/images.js +++ b/server/routes/images.js @@ -59,7 +59,11 @@ router.post('/images/upload', multer({limits: {fileSize: 10 * 1024 * 1024}}).any const ids = []; for (let file of req.files) { const id = ulid(); - const image = await loadImage(await sharp(file.buffer).png().toBuffer()); + try { + const image = await loadImage(await sharp(file.buffer).png().toBuffer()); + } catch { + return res.status(400).json({error: 'File type not supported'}); + } for (let s in sizes) { if (!sizes.hasOwnProperty(s)) { continue; } diff --git a/src/error.js b/src/error.js index 6fabc5449..9ff0f2992 100644 --- a/src/error.js +++ b/src/error.js @@ -1,3 +1,3 @@ module.exports = (err, req) => { - return `[${new Date().toISOString()}][${req ? (req.method + ' ' + req.url) : ''}] ${err.message || err} ${err.stack}`; + return `[${new Date().toISOString()}] [${req ? (req.method + ' ' + req.url) : ''}] ${err.message || err} ${err.stack}`; }