diff options
| author | 2016-05-09 16:26:13 -0700 | |
|---|---|---|
| committer | 2016-05-09 16:26:13 -0700 | |
| commit | c544f34bfed4273b38e5c3769c627e0c3e9c5d73 (patch) | |
| tree | 2b4c8c7c7787290f8680674ffd9b34bf15c21dc1 /runtime/java_vm_ext.cc | |
| parent | 266f2d4d51a18a703b2d4fbfedc63eb1baaf3ffb (diff) | |
Initialize native loader before starting runtime
Loading public libraries before everything else
to prevent situation when libssl.so gets into
libopenjdk.so load group which then prevented
from unloading by a global library referencing
the very same libssl.so
Bug: http://b/28449304
Change-Id: I3bbff3cc6926c2377ae5cb5b7b5b5d6e26ea4470
Diffstat (limited to 'runtime/java_vm_ext.cc')
| -rw-r--r-- | runtime/java_vm_ext.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/runtime/java_vm_ext.cc b/runtime/java_vm_ext.cc index 79c320309c..d983a9fa19 100644 --- a/runtime/java_vm_ext.cc +++ b/runtime/java_vm_ext.cc @@ -943,6 +943,11 @@ extern "C" jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args) { if (!Runtime::Create(options, ignore_unrecognized)) { return JNI_ERR; } + + // Initialize native loader. This step makes sure we have + // everything set up before we start using JNI. + android::InitializeNativeLoader(); + Runtime* runtime = Runtime::Current(); bool started = runtime->Start(); if (!started) { @@ -952,10 +957,6 @@ extern "C" jint JNI_CreateJavaVM(JavaVM** p_vm, JNIEnv** p_env, void* vm_args) { return JNI_ERR; } - // Initialize native loader. This step makes sure we have - // everything set up before we start using JNI. - android::InitializeNativeLoader(); - *p_env = Thread::Current()->GetJniEnv(); *p_vm = runtime->GetJavaVM(); return JNI_OK; |