Skip to content

Commit

Permalink
url: should validate ipv4 part length
Browse files Browse the repository at this point in the history
  • Loading branch information
anonrig committed Apr 29, 2022
1 parent 27ecf1d commit 6da540f
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/node_url.cc
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,6 @@ void URLHost::ParseIPv4Host(const char* input, size_t length, bool* is_ipv4) {
pointer++;
}
CHECK_GT(parts, 0);
*is_ipv4 = true;

// If any but the last item in numbers is greater than 255, return failure.
// If the last item in numbers is greater than or equal to
Expand All @@ -441,6 +440,8 @@ void URLHost::ParseIPv4Host(const char* input, size_t length, bool* is_ipv4) {
return;
}

*is_ipv4 = true;

type_ = HostType::H_IPV4;
val = static_cast<uint32_t>(numbers[parts - 1]);
for (int n = 0; n < parts - 1; n++) {
Expand Down
3 changes: 3 additions & 0 deletions test/parallel/test-whatwg-url-constructor.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ if (!common.hasIntl) {
common.skip('missing Intl');
}

const assert = require('assert');
const fixtures = require('../common/fixtures');
const { test, assert_equals, assert_true, assert_throws } =
require('../common/wpt').harness;
Expand Down Expand Up @@ -142,3 +143,5 @@ function runURLSearchParamTests() {
runURLSearchParamTests()
runURLConstructorTests()
/* eslint-enable */

assert.throws(() => new URL('https://256.256.256.256.256'), { code: 'ERR_INVALID_URL' });

0 comments on commit 6da540f

Please sign in to comment.