mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
02ac302b6d
Make sure we validate the port number in all kinds of `listen()` calls. Fixes: https://github.com/nodejs/node/issues/5727 PR-URL: https://github.com/nodejs/node/pull/5732 Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
19 lines
590 B
JavaScript
19 lines
590 B
JavaScript
'use strict';
|
|
|
|
module.exports = { isLegalPort, assertPort };
|
|
|
|
// 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 !== 'number' && typeof port !== 'string') ||
|
|
(typeof port === 'string' && port.trim().length === 0))
|
|
return false;
|
|
return +port === (+port >>> 0) && port <= 0xFFFF;
|
|
}
|
|
|
|
|
|
function assertPort(port) {
|
|
if (typeof port !== 'undefined' && !isLegalPort(port))
|
|
throw new RangeError('"port" argument must be >= 0 and < 65536');
|
|
}
|