From 56b27b21d5f8dd95b9d6415c5e98b821774f3093 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Tue, 14 Nov 2017 14:28:32 +0100 Subject: [PATCH] qt: Fix IODeviceDataProvider with Process * lang/qt/src/dataprovider.cpp (blocking_read): Keep reading if process is not atEnd. -- This fixes a regression in Kleopatra that uses this dataprovider to chain the gpgtar process to the encryption / signing. --- lang/qt/src/dataprovider.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lang/qt/src/dataprovider.cpp b/lang/qt/src/dataprovider.cpp index 0d527a07..a025a03e 100644 --- a/lang/qt/src/dataprovider.cpp +++ b/lang/qt/src/dataprovider.cpp @@ -185,7 +185,11 @@ static qint64 blocking_read(const std::shared_ptr &io, char *buffer, if (p->error() == QProcess::UnknownError && p->exitStatus() == QProcess::NormalExit && p->exitCode() == 0) { - return 0; + if (io->atEnd()) { + // EOF + return 0; + } // continue reading even if process ended to ensure + // everything is read. } else { Error::setSystemError(GPG_ERR_EIO); return -1;