summaryrefslogtreecommitdiffstats
path: root/base/file_util_posix.cc
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-02 02:28:16 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-02 02:28:16 +0000
commitcabe39c43a98b6b635951d5cb3649e061e36ea21 (patch)
treec76282b5ed8452f490edbda9ed0a32bf364b5d6a /base/file_util_posix.cc
parentce716d859764f7a6e8ea0c79bbcd445d856f4da0 (diff)
downloadchromium_src-cabe39c43a98b6b635951d5cb3649e061e36ea21.zip
chromium_src-cabe39c43a98b6b635951d5cb3649e061e36ea21.tar.gz
chromium_src-cabe39c43a98b6b635951d5cb3649e061e36ea21.tar.bz2
linux: check the return value passed through HANDLE_EINTR
A smarter compiler (clang) can notice that we were not using the return values being passed through HANDLE_EINTR, which meant most frequently that we were missing checking the return value of close(). Review URL: http://codereview.chromium.org/569003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37786 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util_posix.cc')
-rw-r--r--base/file_util_posix.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/base/file_util_posix.cc b/base/file_util_posix.cc
index d7df8a0..3bd5376 100644
--- a/base/file_util_posix.cc
+++ b/base/file_util_posix.cc
@@ -481,9 +481,10 @@ int ReadFile(const FilePath& filename, char* data, int size) {
if (fd < 0)
return -1;
- int ret_value = HANDLE_EINTR(read(fd, data, size));
- HANDLE_EINTR(close(fd));
- return ret_value;
+ ssize_t bytes_read = HANDLE_EINTR(read(fd, data, size));
+ if (int ret = HANDLE_EINTR(close(fd)) < 0)
+ return ret;
+ return bytes_read;
}
int WriteFile(const FilePath& filename, const char* data, int size) {
@@ -491,9 +492,10 @@ int WriteFile(const FilePath& filename, const char* data, int size) {
if (fd < 0)
return -1;
- int rv = WriteFileDescriptor(fd, data, size);
- HANDLE_EINTR(close(fd));
- return rv;
+ int bytes_written = WriteFileDescriptor(fd, data, size);
+ if (int ret = HANDLE_EINTR(close(fd)) < 0)
+ return ret;
+ return bytes_written;
}
int WriteFileDescriptor(const int fd, const char* data, int size) {