diff options
author | Anna Henningsen <anna@addaleax.net> | 2017-04-30 01:48:37 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-05-03 19:04:48 +0200 |
commit | 9990be2919fb73b2285118a236dc6f7adbdf7cef (patch) | |
tree | b518dcced06abe0a2a1ba3d53f250fdba55e9011 /src/stream_base.cc | |
parent | b2ab41e5ae6213b17de8031771585030aea046e2 (diff) | |
download | android-node-v8-9990be2919fb73b2285118a236dc6f7adbdf7cef.tar.gz android-node-v8-9990be2919fb73b2285118a236dc6f7adbdf7cef.tar.bz2 android-node-v8-9990be2919fb73b2285118a236dc6f7adbdf7cef.zip |
src: turn buffer type-CHECK into exception
Turn a `CHECK()` that could be brought to fail using public APIs
into throwing an error.
Fixes: https://github.com/nodejs/node/issues/12152
PR-URL: https://github.com/nodejs/node/pull/12753
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'src/stream_base.cc')
-rw-r--r-- | src/stream_base.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/stream_base.cc b/src/stream_base.cc index 3ed622d7ef..19130b5bb8 100644 --- a/src/stream_base.cc +++ b/src/stream_base.cc @@ -189,9 +189,14 @@ int StreamBase::Writev(const FunctionCallbackInfo<Value>& args) { int StreamBase::WriteBuffer(const FunctionCallbackInfo<Value>& args) { CHECK(args[0]->IsObject()); - CHECK(Buffer::HasInstance(args[1])); + Environment* env = Environment::GetCurrent(args); + if (!args[1]->IsUint8Array()) { + env->ThrowTypeError("Second argument must be a buffer"); + return 0; + } + Local<Object> req_wrap_obj = args[0].As<Object>(); const char* data = Buffer::Data(args[1]); size_t length = Buffer::Length(args[1]); |