Home GnuPG
Diffusion GPGME b3b75c37e2d3

qt: Flush output after write for QProcess output

Description

qt: Flush output after write for QProcess output

* lang/qt/src/dataprovider.cpp (QIODeviceDataProvider::write): Call
waitForBytesWritten.

The problem here is that QProcess writes into an internal buffer
which is written to stdin of the process triggered by a
signal/slot connection. That connection is broken when we move
the QProcess into our GPGME thread and only restablished when
our Job is finished. This caused Kleopatra to basically keep
everything when decrypting a large archive in memory and
only write it out to the unpack process once the decryption
was finished.

Details

Provenance
aheineckeAuthored on Jun 10 2021, 3:36 PM
Parents
rMceb8387460b0: core,w32: Increase BUFFER_SIZE to 4096
Branches
Unknown
Tags
Unknown
Tasks
T5475: Kleopatra: Crash when decrypting large archives