| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 0ac977d commit a757f00
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1416,7 +1416,7 @@ function lookupAndConnect(self, options) { | |||
| 1416 | 1416 | // calls net.Socket.connect() on it (that's us). There are no event | |
| 1417 | 1417 | // listeners registered yet so defer the error event to the next tick. | |
| 1418 | 1418 | process.nextTick(connectErrorNT, self, err); | |
| 1419 | - } else if (!isIP(ip)) { | ||
| 1419 | + } else if ((typeof ip !== 'string') || !isIP(ip)) { | ||
| 1420 | 1420 | err = new ERR_INVALID_IP_ADDRESS(ip); | |
| 1421 | 1421 | process.nextTick(connectErrorNT, self, err); | |
| 1422 | 1422 | } else if (addressType !== 4 && addressType !== 6) { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,44 @@ | |||
| 1 | + import * as common from '../common/index.mjs'; | ||
| 2 | + import net from 'node:net'; | ||
| 3 | + import { describe, it } from 'node:test'; | ||
| 4 | + | ||
| 5 | + const brokenCustomLookup = (_hostname, options, callback) => { | ||
| 6 | + // Incorrectly return an array of IPs instead of a string. | ||
| 7 | + callback(null, ['127.0.0.1'], options.family); | ||
| 8 | + }; | ||
| 9 | + | ||
| 10 | + describe('when family is ipv4', () => { | ||
| 11 | + it('socket emits an error when lookup does not return a string', (t, done) => { | ||
| 12 | + const options = { | ||
| 13 | + host: 'example.com', | ||
| 14 | + port: 80, | ||
| 15 | + lookup: brokenCustomLookup, | ||
| 16 | + family: 4 | ||
| 17 | + }; | ||
| 18 | + | ||
| 19 | + const socket = net.connect(options, common.mustNotCall()); | ||
| 20 | + socket.on('error', (err) => { | ||
| 21 | + t.assert.strictEqual(err.code, 'ERR_INVALID_IP_ADDRESS'); | ||
| 22 | + | ||
| 23 | + done(); | ||
| 24 | + }); | ||
| 25 | + }); | ||
| 26 | + }); | ||
| 27 | + | ||
| 28 | + describe('when family is ipv6', () => { | ||
| 29 | + it('socket emits an error when lookup does not return a string', (t, done) => { | ||
| 30 | + const options = { | ||
| 31 | + host: 'example.com', | ||
| 32 | + port: 80, | ||
| 33 | + lookup: brokenCustomLookup, | ||
| 34 | + family: 6 | ||
| 35 | + }; | ||
| 36 | + | ||
| 37 | + const socket = net.connect(options, common.mustNotCall()); | ||
| 38 | + socket.on('error', (err) => { | ||
| 39 | + t.assert.strictEqual(err.code, 'ERR_INVALID_IP_ADDRESS'); | ||
| 40 | + | ||
| 41 | + done(); | ||
| 42 | + }); | ||
| 43 | + }); | ||
| 44 | + }); | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments