harden raw request body parsing
This commit is contained in:
+6
-3
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user