close update package before installing; allow remount
Close the update package before invoking the binary, to allow the
installer to unmount /cache if it wants to. Add a function to allow
remounting of a mount as read-only.
Change-Id: Idfcc96c3da66083295177f729263560be58034e4
diff --git a/install.c b/install.c
index 35ba6ca..40f182d 100644
--- a/install.c
+++ b/install.c
@@ -42,6 +42,7 @@
const ZipEntry* binary_entry =
mzFindZipEntry(zip, ASSUMED_UPDATE_BINARY_NAME);
if (binary_entry == NULL) {
+ mzCloseZipArchive(zip);
return INSTALL_CORRUPT;
}
@@ -49,11 +50,13 @@
unlink(binary);
int fd = creat(binary, 0755);
if (fd < 0) {
+ mzCloseZipArchive(zip);
LOGE("Can't make %s\n", binary);
return 1;
}
bool ok = mzExtractZipEntryToFile(zip, binary_entry, fd);
close(fd);
+ mzCloseZipArchive(zip);
if (!ok) {
LOGE("Can't copy %s\n", ASSUMED_UPDATE_BINARY_NAME);
@@ -298,6 +301,5 @@
/* Verify and install the contents of the package.
*/
int status = handle_update_package(path, &zip);
- mzCloseZipArchive(&zip);
return status;
}