comparison libpurple/protocols/jabber/usermood.c @ 32178:979bab4c3bca

jabber: Check for empty string when setting mood. The xmlnode API didn't check for the empty string ("") as node name, which leads to...broken XML. I added those checks to xmlnode, and fixed this occurrence in usermood. Fixes #14342
author Paul Aurich <paul@darkrain42.org>
date Mon, 27 Jun 2011 05:24:53 +0000
parents 5e7ff3ed7ad0
children 2ec94166be43
comparison
equal deleted inserted replaced
32177:e0856c50cdd8 32178:979bab4c3bca
175 175
176 publish = xmlnode_new("publish"); 176 publish = xmlnode_new("publish");
177 xmlnode_set_attrib(publish,"node","http://jabber.org/protocol/mood"); 177 xmlnode_set_attrib(publish,"node","http://jabber.org/protocol/mood");
178 moodnode = xmlnode_new_child(xmlnode_new_child(publish, "item"), "mood"); 178 moodnode = xmlnode_new_child(xmlnode_new_child(publish, "item"), "mood");
179 xmlnode_set_namespace(moodnode, "http://jabber.org/protocol/mood"); 179 xmlnode_set_namespace(moodnode, "http://jabber.org/protocol/mood");
180 if (mood) { 180 if (mood && *mood) {
181 /* if mood is NULL, set an empty mood node, meaning: unset mood */ 181 /* if mood is NULL, set an empty mood node, meaning: unset mood */
182 xmlnode_new_child(moodnode, mood); 182 xmlnode_new_child(moodnode, mood);
183 } 183 }
184 184
185 if (text && text[0] != '\0') { 185 if (text && *text) {
186 xmlnode *textnode = xmlnode_new_child(moodnode, "text"); 186 xmlnode *textnode = xmlnode_new_child(moodnode, "text");
187 xmlnode_insert_data(textnode, text, -1); 187 xmlnode_insert_data(textnode, text, -1);
188 } 188 }
189 189
190 jabber_pep_publish(js, publish); 190 jabber_pep_publish(js, publish);