diff options
| author | 2011-09-23 13:12:49 -0700 | |
|---|---|---|
| committer | 2011-09-23 17:57:19 -0700 | |
| commit | cfbca6ae851078a77abde7773dbb43afe814cb0e (patch) | |
| tree | b438fb5055880b0ca5433b9dbf3bc252794987d6 | |
| parent | 6ed59da6ad810eb2f832bd9842395a1e08e62182 (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.cpp | 8 |
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 : ""); |