From a1831dacbfce7fb0b6df2cd11b0a5e3843f563d4 Mon Sep 17 00:00:00 2001 From: Deokjin Kim Date: Mon, 5 Dec 2022 13:55:58 +0900 Subject: [PATCH] net: check `autoSelectFamilyAttemptTimeout` is positive MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In document, `autoSelectFamilyAttemptTimeout` is described as positive integer because it's time unit. But there is no checking whether it's positive integer. PR-URL: https://github.com/nodejs/node/pull/45740 Refs: https://github.com/nodejs/node/blob/main/doc/api/net.md#socketconnectoptions-connectlistener Reviewed-By: Matteo Collina Reviewed-By: Paolo Insogna Reviewed-By: Tobias Nießen Reviewed-By: Luigi Pinca --- lib/net.js | 2 +- ...nnect-invalid-autoselectfamilyattempttimeout.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 test/parallel/test-net-socket-connect-invalid-autoselectfamilyattempttimeout.js diff --git a/lib/net.js b/lib/net.js index 103b6c92647700..33690d02e681de 100644 --- a/lib/net.js +++ b/lib/net.js @@ -1226,7 +1226,7 @@ function lookupAndConnect(self, options) { } if (autoSelectFamilyAttemptTimeout !== undefined) { - validateInt32(autoSelectFamilyAttemptTimeout); + validateInt32(autoSelectFamilyAttemptTimeout, 'options.autoSelectFamilyAttemptTimeout', 1); if (autoSelectFamilyAttemptTimeout < 10) { autoSelectFamilyAttemptTimeout = 10; diff --git a/test/parallel/test-net-socket-connect-invalid-autoselectfamilyattempttimeout.js b/test/parallel/test-net-socket-connect-invalid-autoselectfamilyattempttimeout.js new file mode 100644 index 00000000000000..b7bd1ec0751ae8 --- /dev/null +++ b/test/parallel/test-net-socket-connect-invalid-autoselectfamilyattempttimeout.js @@ -0,0 +1,14 @@ +'use strict'; +require('../common'); +const assert = require('assert'); +const net = require('net'); + +for (const autoSelectFamilyAttemptTimeout of [-10, 0]) { + assert.throws(() => { + net.connect({ + port: 8080, + autoSelectFamily: true, + autoSelectFamilyAttemptTimeout, + }); + }, { code: 'ERR_OUT_OF_RANGE' }); +}