diff options
| author | 2012-10-16 15:57:11 -0700 | |
|---|---|---|
| committer | 2012-10-16 15:57:11 -0700 | |
| commit | 7abbbc680d03dd8e50a709f89b78ace6b81154b0 (patch) | |
| tree | 62713e88e97cc6016d2f9c9cb036af421c98aeaa /libs/utils/ZipUtils.cpp | |
| parent | e3a669656ae891a510ccbd73d26559a20f5f466b (diff) | |
| parent | d611117f246213ee4bb183a3015c1fd79593074b (diff) | |
Merge "Add TEMP_FAILURE_RETRY to ZipUtils"
Diffstat (limited to 'libs/utils/ZipUtils.cpp')
| -rw-r--r-- | libs/utils/ZipUtils.cpp | 10 |
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; } |