Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34.3k
tls: convertProtocols() error handling#23606
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tls: convertProtocols() error handling #23606
Uh oh!
There was an error while loading. Please reload this page.
Conversation
The convertProtocols() function now throws a range error when the byte length of a protocol is too long to fit in a Buffer. Also added a test case in test/parallel/test-tls-basic-validations.js to cover this.
Uh oh!
There was an error while loading. Please reload this page.
Changed the byte length error message for protocol to correctly state that the length must be <= 255 not < 255 Amended the test case in test/parallel/test-tls-basic-validations.js
addaleax left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
addaleax commented Oct 12, 2018
CI: https://ci.nodejs.org/job/node-test-pull-request/17761/ We may or may not consider this semver-major; on the one hand, this adds a new error, on the other hand, output before this patch would have been completely broken and would have failed at another point. |
jasnell commented Oct 12, 2018
hmm... I think we need to mark as semver-major but let's see if there's @nodejs/tsc consensus on downgrading it. |
mcollina left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Trott commented Oct 12, 2018
Uh oh!
There was an error while loading. Please reload this page.
BridgeAR commented Oct 12, 2018
I don't think that this has to be semver major since it was broken before otherwise. |
Also changed corresponding usage in lib/tls.js Amended the test case in test/parallel/test-tls-basic-validations.js
Uh oh!
There was an error while loading. Please reload this page.
Trott commented Oct 13, 2018
addaleax commented Oct 16, 2018
Trott commented Oct 16, 2018
I think this should land as patch rather than major. I think the reason is as stated by @BridgeAR above, but I'm willing to supply more detail to the argument if there's disagreement about this. |
lib/tls.js Outdated
| varlen=Buffer.byteLength(c); | ||
| if(len>255){ | ||
| thrownewERR_OUT_OF_RANGE('','<= 255',len,'The byte length of the '+ | ||
| `protocol at index ${i} exceeds the maximum length.`); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When looking at this signature it looks like a mistake that the first argument is an empty string.
I suggest to use the following instead:
ERR_OUT_OF_RANGE(str,range,input,replaceDefaultBoolean)Using booleans as arguments is not great either but that way the first argument is at least used properly and the reader will hopefully be less surprised (as I would be). We might also use a different more expressive value than a boolean but that could be more error prone.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've refactored as per your suggestion. Check it out.
BridgeAR commented Oct 17, 2018
I removed the semver-major label due to the comments above. // cc @nodejs/tsc |
addaleax commented Oct 21, 2018
Fresh CI to include the latest changes: https://ci.nodejs.org/job/node-test-pull-request/18020/ |
Trott commented Oct 24, 2018
Landed in cdba3c1. Thanks for the contribution! 🎉 (If you're interested in other possible contributions to Node.js but don't have a good idea of where to start looking, some ideas are posted at https://www.nodetodo.org/next-steps/.) |
The convertProtocols() function now throws a range error when the byte length of a protocol is too long to fit in a Buffer. Also added a test case in test/parallel/test-tls-basic-validations.js to cover this. PR-URL: #23606 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Sakthipriyan Vairamani <[email protected]>
pugbyte commented Oct 25, 2018
Thank you for the opportunity. This has been really eye-opening and I'll be much less shy about contributing to open-source projects in the future. |
MylesBorins commented Nov 26, 2018
it seems like there was some debate regarding if this was Semver-Major or not. As such i'm unsure if it should be backported to LTS thoughts? |
The convertProtocols() function now throws a range error when the byte length of a protocol is too long to fit in a Buffer. Also added a test case in test/parallel/test-tls-basic-validations.js to cover this. PR-URL: #23606 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Sakthipriyan Vairamani <[email protected]>
The convertProtocols() function now throws a range error when the byte length of a protocol is too long to fit in a Buffer. Also added a test case in test/parallel/test-tls-basic-validations.js to cover this. PR-URL: #23606 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Sakthipriyan Vairamani <[email protected]>
The convertProtocols() function now throws a range error when the byte
length of a protocol is too long to fit in a Buffer.
Also added a test case in test/parallel/test-tls-basic-validations.js
to cover this.
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes