From a7ff85259da302167539ab39bc008f2e92864018 Mon Sep 17 00:00:00 2001 From: YuanQY Date: Wed, 24 Jul 2013 13:03:02 +0800 Subject: android_os_SELinux : Use empty array to instead of NULL to avoid the DevicePolicyManagerService cannot start when the SELinux is disabled. Error log 07-24 10:32:14.408 F/SystemServer( 1676): BOOT FAILURE making Device Policy Service ready 07-24 10:32:14.408 F/SystemServer( 1676): java.lang.NullPointerException 07-24 10:32:14.408 F/SystemServer( 1676): at com.android.server.zh(DevicePolicyManagerService.java:2628) 07-24 10:32:14.408 F/SystemServer( 1676): at com.android.server.DevicePolicyManagerService.systemReady(DevicePolicyManagerService.java:1251) 07-24 10:32:14.408 F/SystemServer( 1676): at com.android.server.ServerThread.run(SystemServer.java:941) Patch Set 2: Append the error log. Change-Id: I31be031c356ef8e293de0395feefb34ced628341 --- core/jni/android_os_SELinux.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/core/jni/android_os_SELinux.cpp b/core/jni/android_os_SELinux.cpp index e813c38..ef3d531 100644 --- a/core/jni/android_os_SELinux.cpp +++ b/core/jni/android_os_SELinux.cpp @@ -335,19 +335,20 @@ namespace android { * Exceptions: None */ static jobjectArray getBooleanNames(JNIEnv *env, JNIEnv clazz) { -#ifdef HAVE_SELINUX - if (isSELinuxDisabled) - return NULL; + jclass stringClass = env->FindClass("java/lang/String"); + jobjectArray stringArray = env->NewObjectArray(0, stringClass, NULL); +#ifdef HAVE_SELINUX char **list; int i, len, ret; - jclass stringClass; - jobjectArray stringArray = NULL; + + if (isSELinuxDisabled) + return stringArray; if (security_get_boolean_names(&list, &len) == -1) - return NULL; + return stringArray; - stringClass = env->FindClass("java/lang/String"); + env->DeleteLocalRef(stringArray); stringArray = env->NewObjectArray(len, stringClass, env->NewStringUTF("")); for (i = 0; i < len; i++) { jstring obj; @@ -357,11 +358,8 @@ namespace android { free(list[i]); } free(list); - - return stringArray; -#else - return NULL; #endif + return stringArray; } /* -- cgit v1.1