diff --git a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp index be82879c84118..0eb999f772d3d 100644 --- a/core/jni/com_android_internal_content_NativeLibraryHelper.cpp +++ b/core/jni/com_android_internal_content_NativeLibraryHelper.cpp @@ -260,6 +260,13 @@ copyFileIfChanged(JNIEnv *env, void* arg, ZipFileRO* zipFile, ZipEntryRO zipEntr return INSTALL_FAILED_CONTAINER_ERROR; } + if (fsync(fd) < 0) { + ALOGE("Coulnd't fsync temporary file name: %s: %s\n", localTmpFileName, strerror(errno)); + close(fd); + unlink(localTmpFileName); + return INSTALL_FAILED_INTERNAL_ERROR; + } + close(fd); // Set the modification time for this file to the ZIP's mod time.