From cfbca6ae851078a77abde7773dbb43afe814cb0e Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Fri, 23 Sep 2011 13:12:49 -0700 Subject: [PATCH] Don't crash during full backup when CheckJNI is enabled It's not okay to pass null to JNI methods and trust that it will just back off and return a null result cleanly. Fixes bug 5361822 . Change-Id: Id8a17b958fd183d55cb6475f394e158c13aae2ea --- core/jni/android_app_backup_FullBackup.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/jni/android_app_backup_FullBackup.cpp b/core/jni/android_app_backup_FullBackup.cpp index b36fa3e2f6b27..6ef62a9824f18 100644 --- a/core/jni/android_app_backup_FullBackup.cpp +++ b/core/jni/android_app_backup_FullBackup.cpp @@ -76,10 +76,10 @@ static int backupToTar(JNIEnv* env, jobject clazz, jstring packageNameObj, int ret; // Extract the various strings, allowing for null object pointers - const char* packagenamechars = env->GetStringUTFChars(packageNameObj, NULL); - const char* rootchars = env->GetStringUTFChars(rootpathObj, NULL); - const char* pathchars = env->GetStringUTFChars(pathObj, NULL); - const char* domainchars = env->GetStringUTFChars(domainObj, NULL); + const char* packagenamechars = (packageNameObj) ? env->GetStringUTFChars(packageNameObj, NULL) : NULL; + const char* rootchars = (rootpathObj) ? env->GetStringUTFChars(rootpathObj, NULL) : NULL; + const char* pathchars = (pathObj) ? env->GetStringUTFChars(pathObj, NULL) : NULL; + const char* domainchars = (domainObj) ? env->GetStringUTFChars(domainObj, NULL) : NULL; String8 packageName(packagenamechars ? packagenamechars : ""); String8 rootpath(rootchars ? rootchars : "");