URI-join creates empty roster item, its deletion destroys whole account
This bug reports includes two parts:
- XMPP URI's 'join chatroom' does not work on my particular machine. This is not a big issue, but adds an empty item to the roster.
- When deleting an empty roster item (with JID=""), Gajim deletes the whole Jabber account. This is a big issue.
The bug was found by another person with Gajim 0.11 and ejabberd 1.1.2.
I can reproduce it with Gajim 0.11 (from Debian unstable package) and Gajim SVN OS: Debian unstable web browser: Mozilla Firefox 2.0 Jabber server: ejabberd SVN
Detailed process to reproduce the bug:
-
Create a file example.html with this content (being test@conference.atenea the chatroom JID): <html><body> <a href="xmpp://test@conference.atenea?join" target="_blank">Join this chatroom</a> </body></html>
-
Login with Gajim on a dummy Jabber account (bob@atenea).
-
Open a web browser, open the previous HTML file, click on the link.
-
The browser asks if an application can be started. Answer yes.
-
Gajim opens a new chat window (not chatroom window), with no text in it. It also adds a roster item on the 'Transports' group, without JID. XML raw:
<iq type="get" id="20"><vCard xmlns="vcard-temp" /></iq>
<iq from='bob@atenea' to='bob@atenea/Gajim' id='20' type='result'/>
- Since that roster item is useless, remove it from the roster. Gajim now destroys the Jabber account. XML raw:
<iq type="set" id="21"><query xmlns="jabber:iq:register"><remove /></query></iq>
<iq type="set" id="22"><query xmlns="jabber:iq:roster"><item jid="" subscription="remove" /></query></iq>