From 09aded2bc8b447915511b26ebe71eab6ec98585a Mon Sep 17 00:00:00 2001 From: Nicolas Werner Date: Fri, 17 Dec 2021 05:53:34 +0100 Subject: Fix crash when receiving matrix uri It seems like handling the message in a blocking manner is a no-go. I have no idea how to fix that, so just use a queued connection for now... (ASAN does not cooperate and just hides the crash D:) fixes #842 --- src/ChatPage.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/ChatPage.cpp') diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp index 7c6dde96..86e2141f 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp @@ -1252,10 +1252,10 @@ mxidFromSegments(QStringRef sigil, QStringRef mxid) } bool -ChatPage::handleMatrixUri(const QByteArray &uri) +ChatPage::handleMatrixUri(QString uri) { nhlog::ui()->info("Received uri! {}", uri.toStdString()); - QUrl uri_{QString::fromUtf8(uri)}; + QUrl uri_{uri}; // Convert matrix.to URIs to proper format if (uri_.scheme() == "https" && uri_.host() == "matrix.to") { @@ -1324,7 +1324,8 @@ ChatPage::handleMatrixUri(const QByteArray &uri) std::vector vias; QString action; - for (QString item : uri_.query(QUrl::ComponentFormattingOption::FullyEncoded).split('&')) { + for (QString item : + uri_.query(QUrl::ComponentFormattingOption::FullyEncoded).split('&', Qt::SkipEmptyParts)) { nhlog::ui()->info("item: {}", item.toStdString()); if (item.startsWith("action=")) { -- cgit 1.5.1