net: validate custom lookup() output
This commit adds validation to the IP address returned by the net module's custom DNS lookup() function. PR-URL: https://github.com/nodejs/node/pull/34813 Fixes: https://github.com/nodejs/node/issues/34812 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Ricky Zhou <0x19951125@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
parent
42b5f5f1bd
commit
24cc4a6e7d
@ -1039,6 +1039,9 @@ function lookupAndConnect(self, options) {
|
||||
// calls net.Socket.connect() on it (that's us). There are no event
|
||||
// listeners registered yet so defer the error event to the next tick.
|
||||
process.nextTick(connectErrorNT, self, err);
|
||||
} else if (!isIP(ip)) {
|
||||
err = new ERR_INVALID_IP_ADDRESS(ip);
|
||||
process.nextTick(connectErrorNT, self, err);
|
||||
} else if (addressType !== 4 && addressType !== 6) {
|
||||
err = new ERR_INVALID_ADDRESS_FAMILY(addressType,
|
||||
options.host,
|
||||
|
@ -41,3 +41,14 @@ function check(addressType, cb) {
|
||||
check(4, function() {
|
||||
common.hasIPv6 && check(6);
|
||||
});
|
||||
|
||||
// Verify that bad lookup() IPs are handled.
|
||||
{
|
||||
net.connect({
|
||||
host: 'localhost',
|
||||
port: 80,
|
||||
lookup(host, dnsopts, cb) {
|
||||
cb(null, undefined, 4);
|
||||
}
|
||||
}).on('error', common.expectsError({ code: 'ERR_INVALID_IP_ADDRESS' }));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user