diff options
| -rw-r--r-- | core/jni/com_android_internal_content_NativeLibraryHelper.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp index 850c9c6534e9..f8f9efe2804f 100644 --- a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp +++ b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp @@ -243,7 +243,7 @@ copyFileIfChanged(JNIEnv *env, void* arg, ZipFileRO* zipFile, ZipEntryRO zipEntr return INSTALL_FAILED_INTERNAL_ERROR; } - *(localFileName + nativeLibPath.size()) = '/'; + *(localTmpFileName + nativeLibPath.size()) = '/'; if (strlcpy(localTmpFileName + nativeLibPath.size(), TMP_FILE_PATTERN, TMP_FILE_PATTERN_LEN - nativeLibPath.size()) != TMP_FILE_PATTERN_LEN) { @@ -344,6 +344,11 @@ public: const char* lastSlash = strrchr(fileName, '/'); ALOG_ASSERT(lastSlash != NULL, "last slash was null somehow for %s\n", fileName); + // Skip directories. + if (*(lastSlash + 1) == 0) { + continue; + } + // Make sure the filename is safe. if (!isFilenameSafe(lastSlash + 1)) { continue; |