Skip to content

test,http: check that http server is robust from handler abuse - #37958

Merged
Trott merged 1 commit into
nodejs:masterfrom
Trott:robust-from-tampering
Apr 8, 2021
Merged

test,http: check that http server is robust from handler abuse#37958
Trott merged 1 commit into
nodejs:masterfrom
Trott:robust-from-tampering

Conversation

@Trott

Copy link
Copy Markdown
Member

The only way I could find to complete coverage for _http_common.js is to
use semi-private (exposed but probably shouldn't be) handlers to get the
state into something weird. With the if-condition being checked (see
Refs) commented out, I get this result from this test:

node:_http_common:140
if (len > 0 && !stream._dumped) {
^
TypeError: Cannot read property '_dumped' of null
at HTTPParser.parserOnBody (node:_http_common:140:26)

With the check in place, the test passes without an error. Seems like
quite the edge case, but I'm going to assume it's there for a reason.

Refs: https://coverage.nodejs.org/coverage-b560645d6b0a4bed/lib/_http_common.js.html#L137

@nodejs-github-botnodejs-github-bot added needs-ci PRs that need a full CI run. test Issues and PRs related to the tests. labels Mar 28, 2021
@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

The only way I could find to complete coverage for _http_common.js is to
use semi-private (exposed but probably shouldn't be) handlers to get the
state into something weird. With the if-condition being checked (see
Refs) commented out, I get this result from this test:
```
node:_http_common:140
if (len > 0 && !stream._dumped) {
^
TypeError: Cannot read property '_dumped' of null
at HTTPParser.parserOnBody (node:_http_common:140:26)
```
With the check in place, the test passes without an error. Seems like
quite the edge case, but I'm going to assume it's there for a reason.
Refs: https://coverage.nodejs.org/coverage-b560645d6b0a4bed/lib/_http_common.js.html#L137
PR-URL: nodejs#37958
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
@Trott
Trottforce-pushed the robust-from-tampering branch from 5c84d96 to 0da7a11CompareApril 8, 2021 12:21
@Trott

Trott commented Apr 8, 2021

Copy link
Copy Markdown
MemberAuthor

Landed in 0da7a11

@Trott
Trott merged commit 0da7a11 into nodejs:masterApr 8, 2021
@Trott
Trott deleted the robust-from-tampering branch April 8, 2021 12:22
targos pushed a commit that referenced this pull request May 1, 2021
The only way I could find to complete coverage for _http_common.js is to
use semi-private (exposed but probably shouldn't be) handlers to get the
state into something weird. With the if-condition being checked (see
Refs) commented out, I get this result from this test:
```
node:_http_common:140
if (len > 0 && !stream._dumped) {
^
TypeError: Cannot read property '_dumped' of null
at HTTPParser.parserOnBody (node:_http_common:140:26)
```
With the check in place, the test passes without an error. Seems like
quite the edge case, but I'm going to assume it's there for a reason.
Refs: https://coverage.nodejs.org/coverage-b560645d6b0a4bed/lib/_http_common.js.html#L137
PR-URL: #37958
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
@danielleadamsdanielleadams mentioned this pull request May 3, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-ciPRs that need a full CI run.testIssues and PRs related to the tests.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@Trott@nodejs-github-bot@jasnell@cjihrig