Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions lib/dispatcher/client-h1.js
Original file line number Diff line number Diff line change
Expand Up @@ -201,8 +201,6 @@ class Parser {
* @param {*} llhttp
*/
constructor (client, socket, { exports }) {
assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0)

this.llhttp = exports
this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE)
this.client = client
Expand Down
2 changes: 1 addition & 1 deletion lib/dispatcher/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ class Client extends DispatcherBase {
throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead')
}

if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) {
if (maxHeaderSize != null && (!Number.isInteger(maxHeaderSize) || maxHeaderSize < 1)) {
throw new InvalidArgumentError('invalid maxHeaderSize')
}

Expand Down
40 changes: 40 additions & 0 deletions test/node-test/client-errors.js
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,46 @@ test('invalid options throws', (t, done) => {
assert.strictEqual(err.message, 'invalid maxHeaderSize')
}

try {
new Client(new URL('http://localhost:200'), { // eslint-disable-line
maxHeaderSize: 0
})
assert.ok(0)
} catch (err) {
assert.ok(err instanceof errors.InvalidArgumentError)
assert.strictEqual(err.message, 'invalid maxHeaderSize')
}

try {
new Client(new URL('http://localhost:200'), { // eslint-disable-line
maxHeaderSize: 0
})
assert.ok(0)
} catch (err) {
assert.ok(err instanceof errors.InvalidArgumentError)
assert.strictEqual(err.message, 'invalid maxHeaderSize')
}

try {
new Client(new URL('http://localhost:200'), { // eslint-disable-line
maxHeaderSize: -10
})
assert.ok(0)
} catch (err) {
assert.ok(err instanceof errors.InvalidArgumentError)
assert.strictEqual(err.message, 'invalid maxHeaderSize')
}

try {
new Client(new URL('http://localhost:200'), { // eslint-disable-line
maxHeaderSize: 1.5
})
assert.ok(0)
} catch (err) {
assert.ok(err instanceof errors.InvalidArgumentError)
assert.strictEqual(err.message, 'invalid maxHeaderSize')
}

try {
new Client(1) // eslint-disable-line
assert.ok(0)
Expand Down
Loading