diff --git a/src/app/qtsingleapplication/qtlocalpeer.cpp b/src/app/qtsingleapplication/qtlocalpeer.cpp index f3c4546b6..cb4c57492 100644 --- a/src/app/qtsingleapplication/qtlocalpeer.cpp +++ b/src/app/qtsingleapplication/qtlocalpeer.cpp @@ -191,6 +191,12 @@ void QtLocalPeer::receiveConnection() QByteArray uMsg; quint32 remaining; ds >> remaining; + if (remaining > 65535) { + // drop suspiciously large data + delete socket; + return; + } + uMsg.resize(remaining); int got = 0; char* uMsgBuf = uMsg.data();