@@ -213,17 +213,22 @@ void TLSWrap::SSLInfoCallback(const SSL* ssl_, int where, int ret) {
213
213
Local<Object> object = c->object ();
214
214
215
215
if (where & SSL_CB_HANDSHAKE_START) {
216
- Local<Value> callback = object->Get (env->onhandshakestart_string ());
217
- if (callback->IsFunction ()) {
216
+ Local<Value> callback;
217
+
218
+ if (object->Get (env->context (), env->onhandshakestart_string ())
219
+ .ToLocal (&callback) && callback->IsFunction ()) {
218
220
Local<Value> argv[] = { env->GetNow () };
219
221
c->MakeCallback (callback.As <Function>(), arraysize (argv), argv);
220
222
}
221
223
}
222
224
223
225
if (where & SSL_CB_HANDSHAKE_DONE) {
226
+ Local<Value> callback;
227
+
224
228
c->established_ = true ;
225
- Local<Value> callback = object->Get (env->onhandshakedone_string ());
226
- if (callback->IsFunction ()) {
229
+
230
+ if (object->Get (env->context (), env->onhandshakedone_string ())
231
+ .ToLocal (&callback) && callback->IsFunction ()) {
227
232
c->MakeCallback (callback.As <Function>(), 0 , nullptr );
228
233
}
229
234
}
@@ -814,7 +819,10 @@ int TLSWrap::SelectSNIContextCallback(SSL* s, int* ad, void* arg) {
814
819
815
820
// Call the SNI callback and use its return value as context
816
821
Local<Object> object = p->object ();
817
- Local<Value> ctx = object->Get (env->sni_context_string ());
822
+ Local<Value> ctx;
823
+
824
+ if (!object->Get (env->context (), env->sni_context_string ()).ToLocal (&ctx))
825
+ return SSL_TLSEXT_ERR_NOACK;
818
826
819
827
// Not an object, probably undefined or null
820
828
if (!ctx->IsObject ())
0 commit comments