Hi,

a recent upgrade of some large ejabberd deployment made yaxim crash with
a Null Pointer Exception when opening the participant list of a MUC.

Further analysis has shown that the misbehavior is caused by the legacy
XMPP library I'm using interpreting the following stanza as a
participant presence from a nameless participant, and later crashing on
its namelessness:

        <presence to="ge...@yax.im/yaxim.xyz" 
from="conversati...@conference.siacs.eu">
          <x xmlns="vcard-temp:x:update">
            <photo>87e8d7389eda7cbc0c095e101bee7564eeab9e62</photo>
          </x>
          <c xmlns="http://jabber.org/protocol/caps"; hash="sha-1" 
node="http://www.process-one.net/en/ejabberd/"; 
ver="eREyFCXd9aWVtXD7yPXJuVsFbKo="/>
        </presence>

In the context of XEP-0045, presence-from-the-MUC-bare-JID is undefined
behavior, so it is causing nasal demons [0] here.

While technically, this stanza does not contain the participant-tagging
`x{http://jabber.org/protocol/muc#user}` element, it *can* be
interpreted as a valid GC1.0 participant presence originating from a
nameless participant by a client supporting legacy GC1.0 protocol [1].

This is probably the interpretation taken both by yaxim[2] and by
poezio, which helpfully shows the nameless participant at the end of
the participant list.

To solve this misconception, I suggest two specific action items to be
taken:

- make[3] whoever is responsible for this write a short XEP / update
  0045 / update 0153 to reflect this new use case.

- burn GC1.0 with fire and dance around the pyre.


Georg

[0] http://www.catb.org/jargon/html/N/nasal-demons.html
[1] 
https://web.archive.org/web/20000919185743/http://docs.jabber.org:80/jpg/x273.html
[2] a.k.a. I don't want to admit that my codebase is rotten.
[3] make = kindly ask.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Standards mailing list
Info: https://mail.jabber.org/mailman/listinfo/standards
Unsubscribe: standards-unsubscr...@xmpp.org
_______________________________________________

Reply via email to