dns: validate address type in lookupService

Signed-off-by: Lazizbek Ergashev <lazerg2@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/64878
Fixes: https://github.com/nodejs/node/issues/64877
Reviewed-By: theanarkh <theratliter@gmail.com>
Reviewed-By: Tim Perry <pimterry@gmail.com>
This commit is contained in:
Lazizbek Ergashev authored and GitHub committed 2026-08-21 00:50:05 +00:00
1 parent beeb1026c1
commit da2d6178a6
3 files changed
+23

No files matched your search

+3
View File
@@ -83,6 +83,7 @@ const {
validateNumber,
validateOneOf,
validatePort,
validateString,
validateStringWithoutNullBytes,
} = require('internal/validators');
@@ -269,6 +270,8 @@ function lookupService(address, port, callback) {
if (arguments.length !== 3)
throw new ERR_MISSING_ARGS('address', 'port', 'callback');
validateString(address, 'address');
if (isIP(address) === 0)
throw new ERR_INVALID_ARG_VALUE('address', address);
+2
View File
@@ -282,6 +282,8 @@ function lookupService(address, port) {
if (arguments.length !== 2)
throw new ERR_MISSING_ARGS('address', 'port');
validateString(address, 'address');
if (isIP(address) === 0)
throw new ERR_INVALID_ARG_VALUE('address', address);
+18
View File
@@ -397,6 +397,24 @@ assert.throws(() => {
}, err);
}
{
const invalidAddress = Buffer.from('127.0.0.1');
const err = {
code: 'ERR_INVALID_ARG_TYPE',
name: 'TypeError',
message: 'The "address" argument must be of type string. ' +
'Received an instance of Buffer'
};
assert.throws(() => {
dnsPromises.lookupService(invalidAddress, 0);
}, err);
assert.throws(() => {
dns.lookupService(invalidAddress, 0, common.mustNotCall());
}, err);
}
[null, undefined, 65538, 'test', NaN, Infinity, Symbol(), 0n, true, false, '', () => {}, {}].forEach((port) => {
const err = {
code: 'ERR_SOCKET_BAD_PORT',