summaryrefslogtreecommitdiff
path: root/libs/utils/ZipUtils.cpp
diff options
context:
space:
mode:
author Kenny Root <kroot@google.com> 2012-10-16 16:26:42 -0700
committer Android Git Automerger <android-git-automerger@android.com> 2012-10-16 16:26:42 -0700
commit125beceefd44f6abd17ff336bb989e1850965bd8 (patch)
tree9a4ba33b11b5029b3648244b44fcd89daed6570c /libs/utils/ZipUtils.cpp
parentb82fb3431e5d62298b229f3b8758c832dee41f1d (diff)
parent7abbbc680d03dd8e50a709f89b78ace6b81154b0 (diff)
am 7abbbc68: Merge "Add TEMP_FAILURE_RETRY to ZipUtils"
* commit '7abbbc680d03dd8e50a709f89b78ace6b81154b0': Add TEMP_FAILURE_RETRY to ZipUtils
Diffstat (limited to 'libs/utils/ZipUtils.cpp')
-rw-r--r--libs/utils/ZipUtils.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/utils/ZipUtils.cpp b/libs/utils/ZipUtils.cpp
index cf5467ba5f..a43bbb0ca1 100644
--- a/libs/utils/ZipUtils.cpp
+++ b/libs/utils/ZipUtils.cpp
@@ -21,6 +21,7 @@
#define LOG_TAG "ziputil"
#include <utils/Log.h>
+#include <utils/Compat.h>
#include <utils/ZipUtils.h>
#include <utils/ZipFileRO.h>
@@ -98,10 +99,11 @@ using namespace android;
ALOGV("+++ reading %ld bytes (%ld left)\n",
getSize, compRemaining);
- int cc = read(fd, readBuf, getSize);
- if (cc != (int) getSize) {
- ALOGD("inflate read failed (%d vs %ld)\n",
- cc, getSize);
+ int cc = TEMP_FAILURE_RETRY(read(fd, readBuf, getSize));
+ if (cc < 0) {
+ ALOGW("inflate read failed: %s", strerror(errno));
+ } else if (cc != (int) getSize) {
+ ALOGW("inflate read failed (%d vs %ld)", cc, getSize);
goto z_bail;
}