From d625b9bc47c05a83e2fd52e70ba0ee26b20bdb26 Mon Sep 17 00:00:00 2001 From: Ievgenii Meshcheriakov Date: Fri, 30 Jun 2023 12:54:52 +0200 Subject: [PATCH] QDBusXmlParser: Accept root node names with a leading slash Task-number: QTBUG-2597 Change-Id: I72866e8c02a8a5b1f030faf3e580241219626e54 Reviewed-by: Thiago Macieira Reviewed-by: Qt CI Bot --- src/dbus/qdbusxmlparser.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/dbus/qdbusxmlparser.cpp b/src/dbus/qdbusxmlparser.cpp index e457bf0725..8769e0ae5e 100644 --- a/src/dbus/qdbusxmlparser.cpp +++ b/src/dbus/qdbusxmlparser.cpp @@ -326,9 +326,11 @@ void QDBusXmlParser::readInterface() void QDBusXmlParser::readNode(int nodeLevel) { const QString objName = m_xml.attributes().value("name"_L1).toString(); - const QString fullName = m_object->path.endsWith(u'/') - ? (m_object->path + objName) - : QString(m_object->path + u'/' + objName); + QString fullName = m_object->path; + if (!(fullName.endsWith(u'/') || (nodeLevel == 0 && objName.startsWith(u'/')))) + fullName.append(u'/'); + fullName += objName; + if (!QDBusUtil::isValidObjectPath(fullName)) { qDBusParserError("Invalid D-Bus object path '%s' found while parsing introspection", qPrintable(fullName));