diff options
Diffstat (limited to 'miscutils')
| -rw-r--r-- | miscutils/microcom.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/miscutils/microcom.c b/miscutils/microcom.c index fe6661f00..9a7a41d53 100644 --- a/miscutils/microcom.c +++ b/miscutils/microcom.c | |||
| @@ -117,8 +117,9 @@ int microcom_main(int argc UNUSED_PARAM, char **argv) | |||
| 117 | 117 | ||
| 118 | bb_got_signal = 0; | 118 | bb_got_signal = 0; |
| 119 | nfd = 2; | 119 | nfd = 2; |
| 120 | while (!bb_got_signal && safe_poll(pfd, nfd, timeout) > 0) { | 120 | // Not safe_poll: we want to exit on signal |
| 121 | if (nfd > 1 && pfd[1].revents) { | 121 | while (!bb_got_signal && poll(pfd, nfd, timeout) > 0) { |
| 122 | if (nfd > 1 && (pfd[1].revents & POLLIN)) { | ||
| 122 | char c; | 123 | char c; |
| 123 | // read from stdin -> write to device | 124 | // read from stdin -> write to device |
| 124 | if (safe_read(STDIN_FILENO, &c, 1) < 1) { | 125 | if (safe_read(STDIN_FILENO, &c, 1) < 1) { |
| @@ -142,7 +143,7 @@ int microcom_main(int argc UNUSED_PARAM, char **argv) | |||
| 142 | safe_poll(pfd, 1, delay); | 143 | safe_poll(pfd, 1, delay); |
| 143 | skip_write: ; | 144 | skip_write: ; |
| 144 | } | 145 | } |
| 145 | if (pfd[0].revents) { | 146 | if (pfd[0].revents & POLLIN) { |
| 146 | #define iobuf bb_common_bufsiz1 | 147 | #define iobuf bb_common_bufsiz1 |
| 147 | ssize_t len; | 148 | ssize_t len; |
| 148 | // read from device -> write to stdout | 149 | // read from device -> write to stdout |
