mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00
net: strict checking for internal/net isLegalPort
Add stricter testing for the isLegalPort method in internal/net. This ensures that odd inputs such as isLegalPort(true) and isLegalPort([1]) aren't acceptable as valid port inputs. PR-URL: https://github.com/nodejs/node/pull/5733 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
This commit is contained in:
parent
287bdabe40
commit
d0edabecbf
2 changed files with 16 additions and 10 deletions
|
@ -5,7 +5,8 @@ module.exports = { isLegalPort };
|
|||
// Check that the port number is not NaN when coerced to a number,
|
||||
// is an integer and that it falls within the legal range of port numbers.
|
||||
function isLegalPort(port) {
|
||||
if (typeof port === 'string' && port.trim() === '')
|
||||
if ((typeof port !== 'number' && typeof port !== 'string') ||
|
||||
(typeof port === 'string' && port.trim().length === 0))
|
||||
return false;
|
||||
return +port === (port >>> 0) && port >= 0 && port <= 0xFFFF;
|
||||
return +port === (+port >>> 0) && port <= 0xFFFF;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue