From b4c8548fcd43419f5eed4f4fcda8b23f0cea1d1b Mon Sep 17 00:00:00 2001 From: Anton Filimonov Date: Wed, 24 Feb 2021 23:25:59 +0300 Subject: [PATCH] Add safety check for qChecksum (#228) --- 3rdparty/singleapp/src/singleapplication_p.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/3rdparty/singleapp/src/singleapplication_p.cpp b/3rdparty/singleapp/src/singleapplication_p.cpp index f4a1ca406..587120fb6 100644 --- a/3rdparty/singleapp/src/singleapplication_p.cpp +++ b/3rdparty/singleapp/src/singleapplication_p.cpp @@ -413,8 +413,11 @@ void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock ) quint16 msgChecksum = 0; readStream >> msgChecksum; - const quint16 actualChecksum = qChecksum( msgBytes.constData(), static_cast( msgBytes.length() - sizeof( quint16 ) ) ); - + const quint16 actualChecksum = + msgBytes.length() > sizeof( quint16 ) + ? qChecksum( msgBytes.constData(), static_cast( msgBytes.length() - sizeof( quint16 ) ) ) + : 0; + bool isValid = readStream.status() == QDataStream::Ok && QLatin1String(latin1Name) == blockServerName && msgChecksum == actualChecksum;