diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-06-16 11:05:34 +0200 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2023-06-17 12:33:08 +0200 |
| commit | 2bf0d384aca5129ebb60403bc993b2408db52e32 (patch) | |
| tree | 490f9f6a954372e47858a53259928ab7c95a8d3e /src/base/QXmppStreamFeatures.cpp | |
| parent | 6fe82239fc55b16953f965ea4e20e5fbfe806dd5 (diff) | |
QXmppStreamFeatures.cpp: Fix wrong mechanism parsing
Inside a urn:ietf:params:xml:ns:xmpp-sasl "mechanisms" element, the
following tree is expected:
<mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
<mechanism>SCRAM-SHA-1</mechanism>
<mechanism>PLAIN</mechanism>
...
</mechanisms>
However, QXmppStreamFeatures::parse was looking for "mechanism" from the
parent element, and not from the node belonging to "mechanisms".
This caused authentication to never being performed, rendering QXmpp
near to useless.
Diffstat (limited to 'src/base/QXmppStreamFeatures.cpp')
| -rw-r--r-- | src/base/QXmppStreamFeatures.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/base/QXmppStreamFeatures.cpp b/src/base/QXmppStreamFeatures.cpp index 8041ea4d..89ce8e9a 100644 --- a/src/base/QXmppStreamFeatures.cpp +++ b/src/base/QXmppStreamFeatures.cpp @@ -319,7 +319,7 @@ void QXmppStreamFeatures::parse(const QDomElement &element) // parse advertised SASL Authentication mechanisms QDomElement mechs = element.firstChildElement(QStringLiteral("mechanisms")); if (mechs.namespaceURI() == ns_sasl) { - for (auto subElement = element.firstChildElement(QStringLiteral("mechanism")); + for (auto subElement = mechs.firstChildElement(QStringLiteral("mechanism")); !subElement.isNull(); subElement = subElement.nextSiblingElement(QStringLiteral("mechanism"))) { d->authMechanisms << subElement.text(); |
