Browse Source

url: restrict setting protocol to "file"

Since file URLs can not have `username/password/port`,
the specification was updated to restrict setting protocol to "file".

Refs: https://github.com/whatwg/url/pull/269
Fixes: https://github.com/nodejs/node/issues/11785
PR-URL: https://github.com/nodejs/node/pull/11887
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
v6
Daijiro Wachi 8 years ago
parent
commit
60c8a35744
  1. 7
      lib/internal/url.js

7
lib/internal/url.js

@ -133,6 +133,13 @@ function onParseProtocolComplete(flags, protocol, username, password,
if ((s && !newIsSpecial) || (!s && newIsSpecial)) { if ((s && !newIsSpecial) || (!s && newIsSpecial)) {
return; return;
} }
if (protocol === 'file:' &&
(ctx.username || ctx.password || ctx.port !== undefined)) {
return;
}
if (ctx.scheme === 'file:' && !ctx.host) {
return;
}
if (newIsSpecial) { if (newIsSpecial) {
ctx.flags |= binding.URL_FLAGS_SPECIAL; ctx.flags |= binding.URL_FLAGS_SPECIAL;
} else { } else {

Loading…
Cancel
Save