diff options
Diffstat (limited to 'src/responder')
-rw-r--r-- | src/responder/nss/nsssrv_mmap_cache.c | 20 | ||||
-rw-r--r-- | src/responder/ssh/sshsrv_cmd.c | 2 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/responder/nss/nsssrv_mmap_cache.c b/src/responder/nss/nsssrv_mmap_cache.c index 7a7a498b..e60d0619 100644 --- a/src/responder/nss/nsssrv_mmap_cache.c +++ b/src/responder/nss/nsssrv_mmap_cache.c @@ -512,16 +512,16 @@ static errno_t sss_mc_set_recycled(int fd) /* What do we do now ? */ return errno; } - pos = 0; - while (pos < sizeof(h.status)) { - ret = write(fd, ((uint8_t *)&w) + pos, sizeof(h.status) - pos); - if (ret == -1) { - if (errno != EINTR) { - return errno; - } - continue; - } - pos += ret; + + errno = 0; + ret = sss_atomic_write_s(fd, (uint8_t *)&w, sizeof(h.status)); + if (ret == -1) { + return errno; + } + + if (ret != sizeof(h.status)) { + /* Write error */ + return EIO; } return EOK; diff --git a/src/responder/ssh/sshsrv_cmd.c b/src/responder/ssh/sshsrv_cmd.c index 4882bacf..14913707 100644 --- a/src/responder/ssh/sshsrv_cmd.c +++ b/src/responder/ssh/sshsrv_cmd.c @@ -516,7 +516,7 @@ ssh_host_pubkeys_update_known_hosts(struct ssh_cmd_ctx *cmd_ctx) goto done; } - wret = sss_atomic_write(fd, line, strlen(line)); + wret = sss_atomic_write_s(fd, line, strlen(line)); if (wret == -1) { ret = errno; goto done; |