Force sync files written by minzip.

Some files appear to be missing their sync to disk.

Bug: 18145574
Change-Id: Ic858624a4dd65bbfc54d30f3a13c607078270345
diff --git a/minzip/Zip.c b/minzip/Zip.c
index 5070104..70aff00 100644
--- a/minzip/Zip.c
+++ b/minzip/Zip.c
@@ -1067,7 +1067,8 @@
                     setfscreatecon(secontext);
                 }
 
-                int fd = creat(targetFile, UNZIP_FILEMODE);
+                int fd = open(targetFile, O_CREAT|O_WRONLY|O_TRUNC|O_SYNC
+                        , UNZIP_FILEMODE);
 
                 if (secontext) {
                     freecon(secontext);
@@ -1082,7 +1083,12 @@
                 }
 
                 bool ok = mzExtractZipEntryToFile(pArchive, pEntry, fd);
-                close(fd);
+                if (ok) {
+                    ok = (fsync(fd) == 0);
+                }
+                if (close(fd) != 0) {
+                    ok = false;
+                }
                 if (!ok) {
                     LOGE("Error extracting \"%s\"\n", targetFile);
                     ok = false;