summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Christopher Tate <ctate@google.com> 2011-09-23 13:12:49 -0700
committer The Android Automerger <android-build@android.com> 2011-09-23 17:57:19 -0700
commitcfbca6ae851078a77abde7773dbb43afe814cb0e (patch)
treeb438fb5055880b0ca5433b9dbf3bc252794987d6
parent6ed59da6ad810eb2f832bd9842395a1e08e62182 (diff)
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
-rw-r--r--core/jni/android_app_backup_FullBackup.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/core/jni/android_app_backup_FullBackup.cpp b/core/jni/android_app_backup_FullBackup.cpp
index b36fa3e2f6b2..6ef62a9824f1 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 : "");