From c544f34bfed4273b38e5c3769c627e0c3e9c5d73 Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Mon, 9 May 2016 16:26:13 -0700 Subject: 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 --- runtime/java_vm_ext.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'runtime/java_vm_ext.cc') 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; -- cgit v1.2.3-59-g8ed1b