Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

src: check IsConstructCall in TLSWrap constructor #13097

Closed
wants to merge 1 commit into from

Commits on May 18, 2017

  1. src: check IsConstructCall in TLSWrap constructor

    Currently it is possible to call TLSWrap() without using new and the
    following error message:
    FATAL ERROR: v8::Object::SetAlignedPointerInInternalField() Internal
    field out of bounds
     1: node::Abort()
    [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
     2: node::OnFatalError(char const*, char const*)
    [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
     3: v8::Utils::ReportApiFailure(char const*, char const*)
    [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
     4: v8::Utils::ApiCheck(bool, char const*, char const*)
    [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
     5: v8::InternalFieldOK(v8::internal::Handle<v8::internal::JSReceiver>,
    int, char const*)
    [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
     6: v8::Object::SetAlignedPointerInInternalField(int, void*)
    [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
     7: node::TLSWrap::Initialize(v8::Local<v8::Object>,
    v8::Local<v8::Value>,
    v8::Local<v8::Context>)::$_0::operator()(v8::FunctionCallbackInfo<v8::Value>
    const&) const [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
    
    This commit adds a IsConstructCall check which will produce the
    following error message:
    /Users/danielbevenius/work/nodejs/node/out/Debug/node[2212]:
    ../src/tls_wrap.cc:936:auto node::TLSWrap::Initialize(Local<v8::Object>,
    Local<v8::Value>, Local<v8::Context>)::(anonymous
    class)::operator()(const FunctionCallbackInfo<v8::Value> &) const:
    Assertion `args.IsConstructCall()' failed.
     1: node::Abort()
    [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
     2: node::Assert(char const* const (*) [4])
    [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
     3: node::TLSWrap::Initialize(v8::Local<v8::Object>,
    v8::Local<v8::Value>,
    v8::Local<v8::Context>)::$_0::operator()(v8::FunctionCallbackInfo<v8::Value>
    const&) const [/Users/danielbevenius/work/nodejs/node/out/Debug/node]
    danbev committed May 18, 2017
    Configuration menu
    Copy the full SHA
    1ff414e View commit details
    Browse the repository at this point in the history