diff options
author | Kenta Moriuchi <moriken@kimamass.com> | 2024-06-03 10:29:01 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-02 21:29:01 -0400 |
commit | eda43c46de12ed589fdbe62ba0574887cfbb3574 (patch) | |
tree | 9703b6c92b2e3ca21768d9ae6d82730c41e41157 /runtime/js/30_os.js | |
parent | 754f21f0cd6b788ded48238c5acc3f635329d473 (diff) |
fix: validate integer values in `Deno.exitCode` setter (#24068)
Diffstat (limited to 'runtime/js/30_os.js')
-rw-r--r-- | runtime/js/30_os.js | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/runtime/js/30_os.js b/runtime/js/30_os.js index 866fad287..f3dfda886 100644 --- a/runtime/js/30_os.js +++ b/runtime/js/30_os.js @@ -22,7 +22,8 @@ import { const { Error, FunctionPrototypeBind, - NumberParseInt, + NumberIsInteger, + RangeError, SymbolFor, TypeError, } = primordials; @@ -102,13 +103,17 @@ function getExitCode() { } function setExitCode(value) { - const code = NumberParseInt(value, 10); - if (typeof code !== "number") { + if (typeof value !== "number") { throw new TypeError( - `Exit code must be a number, got: ${code} (${typeof code}).`, + `Exit code must be a number, got: ${value} (${typeof value})`, ); } - op_set_exit_code(code); + if (!NumberIsInteger(value)) { + throw new RangeError( + `Exit code must be an integer, got: ${value}`, + ); + } + op_set_exit_code(value); } function setEnv(key, value) { |