harden raw request body parsing

This commit is contained in:
2026-09-06 17:29:29 +03:00
parent cd6a39558c
commit 3e73849480
+6 -3
View File
@@ -615,12 +615,15 @@ function json(res, code, body) {
function readRaw(req, limit = 1024 * 1024) { function readRaw(req, limit = 1024 * 1024) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let buf = ''; let buf = '';
let settled = false;
const fail = (error) => { if (!settled) { settled = true; reject(error); } };
req.on('data', (c) => { req.on('data', (c) => {
if (settled) return;
buf += c; 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('end', () => { if (!settled) { settled = true; resolve(buf); } });
req.on('error', reject); req.on('error', fail);
}); });
} }