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.
signature.asc
Description: PGP signature
_______________________________________________ Standards mailing list Info: https://mail.jabber.org/mailman/listinfo/standards Unsubscribe: standards-unsubscr...@xmpp.org _______________________________________________