diff options
author | Barak A. Pearlmutter <barak+git@cs.nuim.ie> | 2012-04-18 11:47:19 +0100 |
---|---|---|
committer | Andrej Shadura <andrewsh@debian.org> | 2019-02-24 08:48:52 +0100 |
commit | 2a18896e2de85f4f388084754c6dc765b1c4eeed (patch) | |
tree | 27686892e9e1c39b05f2a9bf9587d61f658fc22b | |
parent | 790b77e16d6f09da6fba5457079b250a2600c847 (diff) |
guard write
Guard write call, avoid ignored-return-value warning.
(This is not a false positive: a very subtle attack would consist of
filling up the filesystem so much that only a partial PID is written,
causing the wrong PID to be signaled later.)
(Note that, technically speaking, if only some of the buffer is
written we should retry the rest in a loop. But in this case, that
seems exceedingly unlikely.)
Gbp-Pq: Name 0006-guard-write.patch
-rw-r--r-- | tayga.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -439,7 +439,10 @@ int main(int argc, char **argv) if (pidfile) { snprintf(addrbuf, sizeof(addrbuf), "%ld\n", (long)getpid()); - write(pidfd, addrbuf, strlen(addrbuf)); + if (write(pidfd, addrbuf, strlen(addrbuf)) != strlen(addrbuf)) { + slog(LOG_CRIT, "Error, unable to write PID file.\n"); + exit(1); + } close(pidfd); } |