From 08a5b442e42ff67bd5666604eebe69f1b4a1c919 Mon Sep 17 00:00:00 2001 From: "C. Scott Ananian" Date: Thu, 6 Mar 2014 15:44:18 -0500 Subject: node: add signature to SET_PROTOTYPE_METHOD This prevents segfaults when a native method is reassigned to a different object (which corrupts args.This()). When unwrapping, clients should use args.Holder() instead of args.This(). Closes #6690. Signed-off-by: Trevor Norris --- src/fs_event_wrap.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/fs_event_wrap.cc') diff --git a/src/fs_event_wrap.cc b/src/fs_event_wrap.cc index 9c1a2b6c6f..7bd8b310f2 100644 --- a/src/fs_event_wrap.cc +++ b/src/fs_event_wrap.cc @@ -106,7 +106,7 @@ void FSEventWrap::Start(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args.GetIsolate()); HandleScope scope(env->isolate()); - FSEventWrap* wrap = Unwrap(args.This()); + FSEventWrap* wrap = Unwrap(args.Holder()); if (args.Length() < 1 || !args[0]->IsString()) { return env->ThrowTypeError("Bad arguments"); @@ -189,7 +189,7 @@ void FSEventWrap::Close(const FunctionCallbackInfo& args) { Environment* env = Environment::GetCurrent(args.GetIsolate()); HandleScope scope(env->isolate()); - FSEventWrap* wrap = Unwrap(args.This()); + FSEventWrap* wrap = Unwrap(args.Holder()); if (wrap == NULL || wrap->initialized_ == false) return; -- cgit v1.2.1