Mercurial > pidgin.yaz
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); |