From 47286fe84753661f5252c3e7f619a19990714897 Mon Sep 17 00:00:00 2001 From: ht Date: Sun, 6 Sep 2026 17:28:51 +0300 Subject: [PATCH] stop oversized request body parsing --- server/index.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/server/index.js b/server/index.js index 6e1a216..8c5a0a7 100644 --- a/server/index.js +++ b/server/index.js @@ -627,18 +627,24 @@ function readRaw(req, limit = 1024 * 1024) { function readBody(req, limit = 100 * 1024) { return new Promise((resolve, reject) => { let data = ''; + let settled = false; + const fail = (error) => { if (!settled) { settled = true; reject(error); } }; req.on('data', (c) => { + if (settled) return; data += c; - if (data.length > limit) reject(new Error('gövde çok büyük')); + if (data.length > limit) { fail(new Error('gövde çok büyük')); req.destroy(); } }); req.on('end', () => { + if (settled) return; try { - resolve(data ? JSON.parse(data) : {}); + const body = data ? JSON.parse(data) : {}; + settled = true; + resolve(body); } catch { - reject(new Error('geçersiz JSON gövdesi')); + fail(new Error('geçersiz JSON gövdesi')); } }); - req.on('error', reject); + req.on('error', fail); }); }