diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2019-01-28 11:41:39 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2019-01-28 11:41:39 +0100 |
commit | 1bf98684e4319a26320224f81fffe1cbbd86c670 (patch) | |
tree | 542b2409cb106dec549ebe562d05d4014466cedc /logd | |
parent | 7ab7ef084c10547ad1e3456144d769c53849d7e0 (diff) |
Check return value from write() in logd.
Diffstat (limited to 'logd')
-rw-r--r-- | logd/src/logd/service.cpp | 6 | ||||
-rw-r--r-- | logd/src/tests/rotate/dummyserver.cpp | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/logd/src/logd/service.cpp b/logd/src/logd/service.cpp index 0227daeb803..7a4e3c97222 100644 --- a/logd/src/logd/service.cpp +++ b/logd/src/logd/service.cpp @@ -131,7 +131,11 @@ Services::dumpState(int fildesc) } if (pos < 1000) { buf[pos-1]='\n'; - write(fildesc, buf, pos); + ssize_t writeRes = write(fildesc, buf, pos); + if (writeRes != pos) { + LOG(warning, "Write failed, res=%zd, should be %d: %s", + writeRes, pos, strerror(errno)); + } } else { LOG(warning, "buffer to small to dumpstate[%s, %s]", service, key); } diff --git a/logd/src/tests/rotate/dummyserver.cpp b/logd/src/tests/rotate/dummyserver.cpp index 5a73cfb7711..4a52154f37c 100644 --- a/logd/src/tests/rotate/dummyserver.cpp +++ b/logd/src/tests/rotate/dummyserver.cpp @@ -28,8 +28,11 @@ int main(int /*argc*/, char ** /*argv*/) S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); char out[6]; sprintf(out, "%d\n", portno); - write(fd, out, sizeof(out)); + ssize_t writeRes = write(fd, out, sizeof(out)); close(fd); + if (writeRes != sizeof(out)) { + error("ERROR: could not write port number"); + } sockaddr_storage cli_addr; socklen_t clilen = sizeof(cli_addr); int newsockfd = accept(handle.get(), |