summaryrefslogtreecommitdiffstats
path: root/logd
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2019-01-28 11:41:39 +0100
committerTor Egge <Tor.Egge@broadpark.no>2019-01-28 11:41:39 +0100
commit1bf98684e4319a26320224f81fffe1cbbd86c670 (patch)
tree542b2409cb106dec549ebe562d05d4014466cedc /logd
parent7ab7ef084c10547ad1e3456144d769c53849d7e0 (diff)
Check return value from write() in logd.
Diffstat (limited to 'logd')
-rw-r--r--logd/src/logd/service.cpp6
-rw-r--r--logd/src/tests/rotate/dummyserver.cpp5
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(),