summaryrefslogtreecommitdiff
path: root/src/node_crypto.cc
diff options
context:
space:
mode:
authorBenjamin Gruenbaum <benji@peer5.com>2017-09-01 16:08:40 +0300
committerBenjamin Gruenbaum <benji@peer5.com>2017-09-04 10:09:14 +0300
commit484bfa2e378d33fd53a6a751dfaa59b0c90b80cb (patch)
treea2349f2214956976ab50d86fe39445006698806f /src/node_crypto.cc
parent8d5b0130da1e50262459cf87d47c10198a107662 (diff)
downloadandroid-node-v8-484bfa2e378d33fd53a6a751dfaa59b0c90b80cb.tar.gz
android-node-v8-484bfa2e378d33fd53a6a751dfaa59b0c90b80cb.tar.bz2
android-node-v8-484bfa2e378d33fd53a6a751dfaa59b0c90b80cb.zip
crypto: accept decimal Number in randomBytes
This change adds the ability to pass a double into randomBytes. PR-URL: https://github.com/nodejs/node/pull/15130 Fixes: https://github.com/nodejs/node/issues/15118 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Timothy Gu <timothygu99@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'src/node_crypto.cc')
-rw-r--r--src/node_crypto.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/node_crypto.cc b/src/node_crypto.cc
index e6acb565d6..3d3c53b4b8 100644
--- a/src/node_crypto.cc
+++ b/src/node_crypto.cc
@@ -5616,13 +5616,13 @@ void RandomBytesProcessSync(Environment* env,
void RandomBytes(const FunctionCallbackInfo<Value>& args) {
Environment* env = Environment::GetCurrent(args);
- if (!args[0]->IsUint32()) {
+ if (!args[0]->IsNumber() || args[0].As<v8::Number>()->Value() < 0) {
return env->ThrowTypeError("size must be a number >= 0");
}
const int64_t size = args[0]->IntegerValue();
- if (size < 0 || size > Buffer::kMaxLength)
- return env->ThrowRangeError("size is not a valid Smi");
+ if (size > Buffer::kMaxLength)
+ return env->ThrowTypeError("size must be a uint32");
Local<Object> obj = env->randombytes_constructor_template()->
NewInstance(env->context()).ToLocalChecked();