perf_hooks: fix checking range of options.figures in createHistogram

For `options.figures`, number between 1 and 5 is allowed. So need
to use `validateInteger` to limit max as 5.

Refs: https://github.com/nodejs/node/blob/main/doc/api/perf_hooks.md#perf_hookscreatehistogramoptions
PR-URL: https://github.com/nodejs/node/pull/45999
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
This commit is contained in:
Deokjin Kim 2023-01-11 05:11:06 +09:00 committed by GitHub
parent 2363634076
commit 8282e65b0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 2 deletions

View File

@ -36,7 +36,6 @@ const {
validateInteger,
validateNumber,
validateObject,
validateUint32,
} = require('internal/validators');
const kDestroy = Symbol('kDestroy');
@ -368,7 +367,7 @@ function createHistogram(options = kEmptyObject) {
} else if (highest < 2n * lowest) {
throw new ERR_INVALID_ARG_VALUE.RangeError('options.highest', highest);
}
validateUint32(figures, 'options.figures', 1, 5);
validateInteger(figures, 'options.figures', 1, 5);
return internalRecordableHistogram(new _Histogram(lowest, highest, figures));
}

View File

@ -135,6 +135,13 @@ const { inspect } = require('util');
});
});
// Number greater than 5 is not allowed
for (const i of [6, 10]) {
throws(() => createHistogram({ figures: i }), {
code: 'ERR_OUT_OF_RANGE',
});
}
createHistogram({ lowest: 1, highest: 11, figures: 1 });
}