summaryrefslogtreecommitdiff
path: root/src/stream_base.cc
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2017-04-30 01:48:37 +0200
committerAnna Henningsen <anna@addaleax.net>2017-05-03 19:04:48 +0200
commit9990be2919fb73b2285118a236dc6f7adbdf7cef (patch)
treeb518dcced06abe0a2a1ba3d53f250fdba55e9011 /src/stream_base.cc
parentb2ab41e5ae6213b17de8031771585030aea046e2 (diff)
downloadandroid-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.cc7
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]);