From a442092d8e0936870583c56216bd5023c8c668fd Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Fri, 12 Jul 2019 20:53:22 -0400 Subject: [PATCH] swtpm: Convert read() to read_eintr() which handles EINTR MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stefan Berger Reviewed-by: Marc-André Lureau --- src/swtpm/ctrlchannel.c | 6 +++--- src/swtpm/key.c | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/swtpm/ctrlchannel.c b/src/swtpm/ctrlchannel.c index ca0c4cf..e67bab9 100644 --- a/src/swtpm/ctrlchannel.c +++ b/src/swtpm/ctrlchannel.c @@ -227,7 +227,7 @@ static int ctrlchannel_receive_state(ptm_setstate *pss, ssize_t n, int fd) offset += n; remain -= n; if (remain) { - n = read(fd, pss->u.req.data, sizeof(pss->u.req.data)); + n = read_eintr(fd, pss->u.req.data, sizeof(pss->u.req.data)); if (n < 0) { res = TPM_IOERROR; close(fd); @@ -341,7 +341,7 @@ static ssize_t ctrlchannel_recv_cmd(int fd, msg->msg_iov[0].iov_len > buffer_len) return -1; } else - n = read(fd, msg->msg_iov[0].iov_base + recvd, buffer_len - recvd); + n = read_eintr(fd, msg->msg_iov[0].iov_base + recvd, buffer_len - recvd); if (n <= 0) return n; recvd += n; @@ -677,7 +677,7 @@ int ctrlchannel_process_fd(int fd, if (!remain) break; - n = read(fd, &data->u.req.data, sizeof(data->u.req.data)); + n = read_eintr(fd, &data->u.req.data, sizeof(data->u.req.data)); if (n <= 0) { res = TPM_IOERROR; break; diff --git a/src/swtpm/key.c b/src/swtpm/key.c index f4764cd..e6b6171 100644 --- a/src/swtpm/key.c +++ b/src/swtpm/key.c @@ -51,6 +51,7 @@ #include "key.h" #include "logging.h" +#include "utils.h" /* * key_format_from_string: @@ -212,7 +213,7 @@ key_load_key_fd(int fd, enum key_format keyformat, char filebuffer[2 + 256/4 + 1 + 1]; ssize_t len; - len = read(fd, filebuffer, sizeof(filebuffer) - 1); + len = read_eintr(fd, filebuffer, sizeof(filebuffer) - 1); if (len < 0) { logprintf(STDERR_FILENO, "Unable to read key: %s\n", strerror(errno)); @@ -316,7 +317,7 @@ key_from_pwdfile_fd(int fd, unsigned char *key, size_t *keylen, goto exit; } - len = read(fd, &filebuffer[offset], filelen - offset); + len = read_eintr(fd, &filebuffer[offset], filelen - offset); if (len < 0) { logprintf(STDERR_FILENO, "Unable to read passphrase: %s\n", -- 2.39.5