[Pkg-gnupg-commit] [gpgme] 80/103: qt: Fix IODeviceDataProvider with Process

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Dec 14 18:53:06 UTC 2017


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gpgme.

commit 56b27b21d5f8dd95b9d6415c5e98b821774f3093
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Tue Nov 14 14:28:32 2017 +0100

    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 0d527a0..a025a03 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<QIODevice> &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;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list