Skip to content

Commit

Permalink
Merge pull request #2371 from brauner/2018-06-01/use_read_nointr
Browse files Browse the repository at this point in the history
tree-wide: handle EINTR in some read()/write()
  • Loading branch information
stgraber committed Jun 1, 2018
2 parents e932b5c + 489f39b commit ef52e67
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
10 changes: 5 additions & 5 deletions src/lxc/conf.c
Expand Up @@ -2332,11 +2332,11 @@ FILE *make_anonymous_mount_file(struct lxc_list *mount)
mount_entry = iterator->elem;
len = strlen(mount_entry);

ret = write(fd, mount_entry, len);
ret = lxc_write_nointr(fd, mount_entry, len);
if (ret != len)
goto on_error;

ret = write(fd, "\n", 1);
ret = lxc_write_nointr(fd, "\n", 1);
if (ret != 1)
goto on_error;
}
Expand Down Expand Up @@ -3951,7 +3951,7 @@ static int run_userns_fn(void *data)
/* Wait for parent to finish establishing a new mapping in the user
* namespace we are executing in.
*/
if (read(d->p[0], &c, 1) != 1)
if (lxc_read_nointr(d->p[0], &c, 1) != 1)
return -1;

/* Close read end of the pipe. */
Expand Down Expand Up @@ -4224,7 +4224,7 @@ int userns_exec_1(struct lxc_conf *conf, int (*fn)(void *), void *data,
}

/* Tell child to proceed. */
if (write(p[1], &c, 1) != 1) {
if (lxc_write_nointr(p[1], &c, 1) != 1) {
SYSERROR("Failed telling child process \"%d\" to proceed", pid);
goto on_error;
}
Expand Down Expand Up @@ -4401,7 +4401,7 @@ int userns_exec_full(struct lxc_conf *conf, int (*fn)(void *), void *data,
}

/* Tell child to proceed. */
if (write(p[1], &c, 1) != 1) {
if (lxc_write_nointr(p[1], &c, 1) != 1) {
SYSERROR("Failed telling child process \"%d\" to proceed", pid);
goto on_error;
}
Expand Down
2 changes: 1 addition & 1 deletion src/lxc/start.c
Expand Up @@ -340,7 +340,7 @@ static int signal_handler(int fd, uint32_t events, void *data,
struct signalfd_siginfo siginfo;
struct lxc_handler *hdlr = data;

ret = read(fd, &siginfo, sizeof(siginfo));
ret = lxc_read_nointr(fd, &siginfo, sizeof(siginfo));
if (ret < 0) {
ERROR("Failed to read signal info from signal file descriptor %d", fd);
return LXC_MAINLOOP_ERROR;
Expand Down

0 comments on commit ef52e67

Please sign in to comment.