Skip to content

Commit 36e5100

Browse files
cjihrigtargos
authored andcommitted
lib: support ranges in validateInt32()
This commit adds minimum and maximum value checks to the validateInt32() validator. PR-URL: #20588 Fixes: #20498 Reviewed-By: Joyee Cheung <[email protected]> Reviewed-By: Weijia Wang <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Backport-PR-URL: #21172
1 parent 2ffb9d6 commit 36e5100

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

lib/internal/validators.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -63,18 +63,22 @@ function validateInteger(value, name) {
6363
}
6464

6565
function validateInt32(value, name, min = -2147483648, max = 2147483647) {
66+
// The defaults for min and max correspond to the limits of 32-bit integers.
6667
if (!isInt32(value)) {
6768
let err;
6869
if (typeof value !== 'number') {
6970
err = new ERR_INVALID_ARG_TYPE(name, 'number', value);
7071
} else if (!Number.isInteger(value)) {
7172
err = new ERR_OUT_OF_RANGE(name, 'an integer', value);
7273
} else {
73-
// 2 ** 31 === 2147483648
74-
err = new ERR_OUT_OF_RANGE(name, '> -2147483649 && < 2147483648', value);
74+
err = new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
7575
}
7676
Error.captureStackTrace(err, validateInt32);
7777
throw err;
78+
} else if (value < min || value > max) {
79+
const err = new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value);
80+
Error.captureStackTrace(err, validateInt32);
81+
throw err;
7882
}
7983
}
8084

0 commit comments

Comments
 (0)