diff --git a/lib/types/urlencoded.js b/lib/types/urlencoded.js index d462225b..7ef2096c 100644 --- a/lib/types/urlencoded.js +++ b/lib/types/urlencoded.js @@ -77,7 +77,7 @@ function createQueryParser (options) { } if (isFinite(parameterLimit)) { - parameterLimit = parameterLimit | 0 + parameterLimit = Math.trunc(parameterLimit) } return function parse (body, encoding) { diff --git a/test/urlencoded.js b/test/urlencoded.js index e4007c53..5882fac7 100644 --- a/test/urlencoded.js +++ b/test/urlencoded.js @@ -517,6 +517,14 @@ describe('bodyParser.urlencoded()', function () { .expect(200, done) }) + it('should work with limit greater than 32-bit signed integer', function (done) { + request(createServer({ extended: false, parameterLimit: 3000000000 })) + .post('/') + .set('Content-Type', 'application/x-www-form-urlencoded') + .send('user=tobi') + .expect(200, '{"user":"tobi"}', done) + }) + it('should work with Infinity limit', function (done) { request(createServer({ extended: false, parameterLimit: Infinity })) .post('/') @@ -572,6 +580,14 @@ describe('bodyParser.urlencoded()', function () { .expect(200, done) }) + it('should work with limit greater than 32-bit signed integer', function (done) { + request(createServer({ extended: true, parameterLimit: 3000000000 })) + .post('/') + .set('Content-Type', 'application/x-www-form-urlencoded') + .send('user=tobi') + .expect(200, '{"user":"tobi"}', done) + }) + it('should work with Infinity limit', function (done) { request(createServer({ extended: true, parameterLimit: Infinity })) .post('/')