summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFedor Indutny <fedor.indutny@gmail.com>2014-03-18 14:03:22 +0400
committerFedor Indutny <fedor.indutny@gmail.com>2014-03-21 16:16:58 +0400
commitb76a1ff940568195c032ba48dc0d2ee8f198bb86 (patch)
tree65a45f383aba5865f52c9e2c41b7bc526920ea50 /src
parentb84ebfe8860edfb83bff945c30d41e2d9c32dfca (diff)
downloadandroid-node-v8-b76a1ff940568195c032ba48dc0d2ee8f198bb86.tar.gz
android-node-v8-b76a1ff940568195c032ba48dc0d2ee8f198bb86.tar.bz2
android-node-v8-b76a1ff940568195c032ba48dc0d2ee8f198bb86.zip
vm: share security token between contexts
By default, each `v8::Context` has a different Security Token, which prevents access to one context from another. fix #7140
Diffstat (limited to 'src')
-rw-r--r--src/node_contextify.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/node_contextify.cc b/src/node_contextify.cc
index df63ed4f07..f552387ed2 100644
--- a/src/node_contextify.cc
+++ b/src/node_contextify.cc
@@ -224,7 +224,11 @@ class ContextifyContext {
CreateDataWrapper(env));
object_template->SetAccessCheckCallbacks(GlobalPropertyNamedAccessCheck,
GlobalPropertyIndexedAccessCheck);
- return scope.Escape(Context::New(env->isolate(), NULL, object_template));
+
+ Local<Context> ctx = Context::New(env->isolate(), NULL, object_template);
+ if (!ctx.IsEmpty())
+ ctx->SetSecurityToken(env->context()->GetSecurityToken());
+ return scope.Escape(ctx);
}