Files
plasma-next/packages/signond/debian/patches/02-4c182d24f552acb69e62988624b408cb83f5158d.patch.patch

33 lines
1.2 KiB
Diff

diff --git a/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp b/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp
index d156659fe18f07173145bb13329d74d6300fbfc1..cff9c3901269e0ca58a5d0b599632c1bea9ddede 100644
--- a/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp
+++ b/lib/plugins/signon-plugins-common/SignOn/blobiohandler.cpp
@@ -111,8 +111,17 @@ void BlobIOHandler::readBlob()
{
QDataStream in(m_readChannel);
+ in.startTransaction();
QByteArray fractionBa;
in >> fractionBa;
+
+ if (!in.commitTransaction()) {
+ setReadNotificationEnabled(true);
+ // FIXME: with next ABI break, add a timer to prevent infinite waiting
+ // if the other party behaves badly
+ return;
+ }
+
m_blobBuffer.append(fractionBa);
//Avoid infinite loops if the other party behaves badly
@@ -126,8 +135,7 @@ void BlobIOHandler::readBlob()
QVariantMap sessionDataMap;
sessionDataMap = byteArrayToVariantMap(m_blobBuffer);
- if (m_blobSize > SIGNON_IPC_BUFFER_PAGE_SIZE)
- setReadNotificationEnabled(false);
+ setReadNotificationEnabled(false);
emit dataReceived(sessionDataMap);
}