From 5811d069d3b391e9fd77c1062a2d96be41645422 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Fri, 16 Jun 2023 14:33:19 +0200 Subject: qt, cpp: Support larger size-hint on 32 bit builds * NEWS: Mention this. * lang/cpp/src/data.h, lang/cpp/src/data.cpp (Data::setSizeHint): New. * lang/qt/src/qgpgmedecryptjob.cpp, lang/qt/src/qgpgmedecryptverifyarchivejob.cpp, lang/qt/src/qgpgmedecryptverifyjob.cpp, lang/qt/src/qgpgmeencryptjob.cpp, lang/qt/src/qgpgmesignencryptjob.cpp, lang/qt/src/qgpgmesignjob.cpp, lang/qt/src/qgpgmeverifydetachedjob.cpp, lang/qt/src/qgpgmeverifyopaquejob.cpp: Set size for input IODevice. -- This fixes the case where the old detection of the size of QIOdevice using seek would overflow and instead explicitly uses QIODevice::size to check for the size and pass it through as an uint64. GnuPG-Bug-Id: T6534 --- lang/qt/src/qgpgmesignjob.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lang/qt/src/qgpgmesignjob.cpp') diff --git a/lang/qt/src/qgpgmesignjob.cpp b/lang/qt/src/qgpgmesignjob.cpp index e89b9457..a5e4f0f2 100644 --- a/lang/qt/src/qgpgmesignjob.cpp +++ b/lang/qt/src/qgpgmesignjob.cpp @@ -81,7 +81,10 @@ static QGpgMESignJob::result_type sign(Context *ctx, QThread *thread, const _detail::ToThreadMover sgMover(signature, thread); QGpgME::QIODeviceDataProvider in(plainText); - const Data indata(&in); + Data indata(&in); + if (!plainText->isSequential()) { + indata.setSizeHint(plainText->size()); + } ctx->clearSigningKeys(); Q_FOREACH (const Key &signer, signers) -- cgit v1.2.3