From 3e73849480ea6366ad70d272d4bb3f58a2b9f223 Mon Sep 17 00:00:00 2001 From: ht Date: Sun, 6 Sep 2026 17:29:29 +0300 Subject: [PATCH] harden raw request body parsing --- server/index.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/server/index.js b/server/index.js index 8c5a0a7..782f941 100644 --- a/server/index.js +++ b/server/index.js @@ -615,12 +615,15 @@ function json(res, code, body) { function readRaw(req, limit = 1024 * 1024) { return new Promise((resolve, reject) => { let buf = ''; + let settled = false; + const fail = (error) => { if (!settled) { settled = true; reject(error); } }; req.on('data', (c) => { + if (settled) return; buf += c; - if (buf.length > limit) { reject(new Error('Gövde çok büyük')); req.destroy(); } + if (buf.length > limit) { fail(new Error('Gövde çok büyük')); req.destroy(); } }); - req.on('end', () => resolve(buf)); - req.on('error', reject); + req.on('end', () => { if (!settled) { settled = true; resolve(buf); } }); + req.on('error', fail); }); }