From a7f010c3700b09cbc1d1a7ec9109ebb731c55723 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 25 Oct 2019 14:14:47 +0200 Subject: [PATCH] Updater: Fix crash when there is an XML error The problem was accessing the lines with an off by one error, while printing the log. Other problem included the fact that QDebug added spaces, quotes, and other things which made the error lot look right in the console. Issue #7545 --- src/gui/updater/updateinfo.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/updater/updateinfo.cpp b/src/gui/updater/updateinfo.cpp index 3b2d5b602..176df1ec2 100644 --- a/src/gui/updater/updateinfo.cpp +++ b/src/gui/updater/updateinfo.cpp @@ -88,9 +88,9 @@ UpdateInfo UpdateInfo::parseString(const QString &xml, bool *ok) int errorLine = 0, errorCol = 0; QDomDocument doc; if (!doc.setContent(xml, false, &errorMsg, &errorLine, &errorCol)) { - qCCritical(lcUpdater) << errorMsg << " at " << errorLine << "," << errorCol; - qCCritical(lcUpdater()) << "->" << xml.splitRef("\n")[errorLine] << "<-\n" - << QStringLiteral(" ").repeated(2 + errorCol - 1) << "^\n" + qCCritical(lcUpdater).noquote().nospace() << errorMsg << " at " << errorLine << "," << errorCol + << "\n" << xml.splitRef("\n").value(errorLine-1) << "\n" + << QString(" ").repeated(errorCol - 1) << "^\n" << "->" << xml << "<-"; if (ok) *ok = false; -- 2.30.2