diff --git a/modules/control/dbus/dbus.c b/modules/control/dbus/dbus.c index 9a59f905a4fb53253ffa9c37b10824cefd913e95..f72c24fc1278d53ae8becdc93550beb8369129a9 100644 --- a/modules/control/dbus/dbus.c +++ b/modules/control/dbus/dbus.c @@ -954,8 +954,10 @@ static void *Run( void *data ) /* Was the main loop woken up manually ? */ if (fds[0].revents & POLLIN) { - char buf; - (void)read( fds[0].fd, &buf, 1 ); + while (read(fds[0].fd, &(char){' '}, 1) == -1) + { + /* Only EINTR can happen here, so ignore the error. */ + } } /* We need to lock the mutex while building lists of events,