diff options
-rw-r--r-- | src/libs/installer/adminauthorization_x11.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/libs/installer/adminauthorization_x11.cpp b/src/libs/installer/adminauthorization_x11.cpp index 063f9a84e..cab62a32f 100644 --- a/src/libs/installer/adminauthorization_x11.cpp +++ b/src/libs/installer/adminauthorization_x11.cpp @@ -206,6 +206,19 @@ bool AdminAuthorization::execute(QWidget *parent, const QString &program, const ::usleep(100000); } + while (true) { + errBytes = ::read(pipedData[0], errBuf, 1023); + if (errBytes == -1 && errno == EAGAIN) { + ::usleep(100000); + continue; + } + + if (errBytes <= 0) + break; + + errData.append(errBuf, errBytes); + } + const bool success = statusValid && WIFEXITED(status) && WEXITSTATUS(status) == 0; if (!success && !errData.isEmpty()) { |