From db90127279f944bdc61288ab3afa336af562d26b Mon Sep 17 00:00:00 2001 From: Deokjin Kim Date: Sat, 30 Sep 2023 12:10:45 +0900 Subject: [PATCH] tls: use `validateNumber` for `options.minDHSize` If user sets invalid type for options.minDHSize in tls.connect(), it's not internal issue of Node.js. So validateNumber() is more proper than assert(). Plus, set min of validateNumber() as 1 to check minDHSize is positive. Refs: https://github.com/nodejs/node/pull/49896 --- lib/_tls_wrap.js | 6 +----- test/parallel/test-tls-client-mindhsize.js | 25 ++++++++++++++-------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/lib/_tls_wrap.js b/lib/_tls_wrap.js index c2dd958f95106e..6af5c1024cd6ec 100644 --- a/lib/_tls_wrap.js +++ b/lib/_tls_wrap.js @@ -1739,11 +1739,7 @@ exports.connect = function connect(...args) { options.singleUse = true; assert(typeof options.checkServerIdentity === 'function'); - assert(typeof options.minDHSize === 'number', - 'options.minDHSize is not a number: ' + options.minDHSize); - assert(options.minDHSize > 0, - 'options.minDHSize is not a positive number: ' + - options.minDHSize); + validateNumber(options.minDHSize, 'options.minDHSize', 1); const context = options.secureContext || tls.createSecureContext(options); diff --git a/test/parallel/test-tls-client-mindhsize.js b/test/parallel/test-tls-client-mindhsize.js index 92ac995936825d..585632d37a20c8 100644 --- a/test/parallel/test-tls-client-mindhsize.js +++ b/test/parallel/test-tls-client-mindhsize.js @@ -74,16 +74,23 @@ testDHE1024(); assert.throws(() => test(512, true, common.mustNotCall()), /DH parameter is less than 1024 bits/); -let errMessage = /minDHSize is not a positive number/; -[0, -1, -Infinity, NaN].forEach((minDHSize) => { - assert.throws(() => tls.connect({ minDHSize }), - errMessage); -}); +for (const minDHSize of [0, -1, -Infinity, NaN]) { + assert.throws(() => { + tls.connect({ minDHSize }); + }, { + code: 'ERR_OUT_OF_RANGE', + name: 'RangeError', + }); +} -errMessage = /minDHSize is not a number/; -[true, false, null, undefined, {}, [], '', '1'].forEach((minDHSize) => { - assert.throws(() => tls.connect({ minDHSize }), errMessage); -}); +for (const minDHSize of [true, false, null, undefined, {}, [], '', '1']) { + assert.throws(() => { + tls.connect({ minDHSize }); + }, { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError', + }); +} process.on('exit', function() { assert.strictEqual(nsuccess, 1);