}
if (nread == -1 && errno != EAGAIN) {
sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO,
- "%s: error reading from signal pipe", __func__);
+ "%s: error reading from signal pipe fd %d", __func__, fd);
}
/* Activate signal events. */
"%s: unable to create signal pipe", __func__);
goto bad;
}
- sudo_ev_init(&base->signal_event, base->signal_pipe[1],
+ sudo_ev_init(&base->signal_event, base->signal_pipe[0],
SUDO_EV_READ|SUDO_EV_PERSIST, signal_pipe_cb, base);
debug_return_int(0);
signal_base->signal_caught = 1;
/* Wake up the other end of the pipe. */
- ignore_result(write(signal_base->signal_pipe[0], &ch, 1));
+ ignore_result(write(signal_base->signal_pipe[1], &ch, 1));
}
}
if (errno == EINTR) {
/* Interrupted by signal, check for sigevents. */
if (base->signal_caught) {
- signal_pipe_cb(base->signal_pipe[1], SUDO_EV_READ, base);
+ signal_pipe_cb(base->signal_pipe[0], SUDO_EV_READ, base);
break;
}
continue;