Code

Proper check for `swrite()` return value
authorPavel Rochnyack <pavel2000@ngs.ru>
Tue, 4 Jul 2017 09:14:05 +0000 (16:14 +0700)
committerPavel Rochnyack <pavel2000@ngs.ru>
Wed, 11 Oct 2017 07:33:09 +0000 (14:33 +0700)
The `swrite()` can return positive value from `errno` in case of error.

src/mcelog.c
src/multimeter.c
src/ntpd.c
src/ted.c
src/write_tsdb.c

index 6b10b04cf7098b2b1ec404f8fb58ac7ba96a73d0..ae5a7f549646b85bf72dfa25d3c9ead7e55e687e 100644 (file)
@@ -257,7 +257,7 @@ static int socket_write(socket_adapter_t *self, const char *msg,
                         const size_t len) {
   int ret = 0;
   pthread_rwlock_rdlock(&self->lock);
-  if (swrite(self->sock_fd, msg, len) < 0)
+  if (swrite(self->sock_fd, msg, len) != 0)
     ret = -1;
   pthread_rwlock_unlock(&self->lock);
   return ret;
index 72b0fed91c1f32caab8ec7b2846389d70031b513..fc69e02dd4ac1aff8fa4a19e4e7eb199c1212bca 100644 (file)
@@ -62,7 +62,7 @@ static int multimeter_read_value(double *value) {
       struct timeval time_now;
 
       status = swrite(fd, "D", 1);
-      if (status < 0) {
+      if (status != 0) {
         ERROR("multimeter plugin: swrite failed.");
         return -1;
       }
index 48d7aa7209b29b6675fba8fbc26f8697095475b3..0faf2a2a1a461c427b77177926989286e6e25eb4 100644 (file)
@@ -669,7 +669,7 @@ static int ntpd_send_request(int req_code, int req_items, int req_size,
         (void *)req_data);
 
   status = swrite(sd, (const char *)&req, REQ_LEN_NOMAC);
-  if (status < 0) {
+  if (status != 0) {
     DEBUG("`swrite' failed. Closing socket #%i", sd);
     close(sd);
     sock_descr = sd = -1;
index 94b4e3ab4b6dc9112282969b509d852627dbad74..3b64b75fe2c1ba859535614be60b0a598aeffc49 100644 (file)
--- a/src/ted.c
+++ b/src/ted.c
@@ -88,7 +88,7 @@ static int ted_read_value(double *ret_power, double *ret_voltage) {
 
   status = write(fd, pkt_request, sizeof(pkt_request));
   if (status <= 0) {
-    ERROR("ted plugin: swrite failed.");
+    ERROR("ted plugin: write failed.");
     return -1;
   }
 
index 10f636c5aad5afa936eb862d3c2c0feb7322ebaa..eb6ceb3f668dfb1129491147eb286c2ccd140211 100644 (file)
@@ -111,7 +111,7 @@ static int wt_send_buffer(struct wt_callback *cb) {
   ssize_t status = 0;
 
   status = swrite(cb->sock_fd, cb->send_buf, strlen(cb->send_buf));
-  if (status < 0) {
+  if (status != 0) {
     char errbuf[1024];
     ERROR("write_tsdb plugin: send failed with status %zi (%s)", status,
           sstrerror(errno, errbuf, sizeof(errbuf)));