summaryrefslogtreecommitdiff
path: root/miscutils/microcom.c
diff options
context:
space:
mode:
Diffstat (limited to 'miscutils/microcom.c')
-rw-r--r--miscutils/microcom.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/miscutils/microcom.c b/miscutils/microcom.c
index fe6661f..9a7a41d 100644
--- a/miscutils/microcom.c
+++ b/miscutils/microcom.c
@@ -117,8 +117,9 @@ int microcom_main(int argc UNUSED_PARAM, char **argv)
bb_got_signal = 0;
nfd = 2;
- while (!bb_got_signal && safe_poll(pfd, nfd, timeout) > 0) {
- if (nfd > 1 && pfd[1].revents) {
+ // Not safe_poll: we want to exit on signal
+ while (!bb_got_signal && poll(pfd, nfd, timeout) > 0) {
+ if (nfd > 1 && (pfd[1].revents & POLLIN)) {
char c;
// read from stdin -> write to device
if (safe_read(STDIN_FILENO, &c, 1) < 1) {
@@ -142,7 +143,7 @@ int microcom_main(int argc UNUSED_PARAM, char **argv)
safe_poll(pfd, 1, delay);
skip_write: ;
}
- if (pfd[0].revents) {
+ if (pfd[0].revents & POLLIN) {
#define iobuf bb_common_bufsiz1
ssize_t len;
// read from device -> write to stdout