changeset 22512:eee94c5446a9

If the default value of a list-single or list-multi data forms field is NULL (<value/> or <value></value>) don't stick NULL in the selected list (this will crash in the g_list_find_custom call later).
author Etan Reisner <pidgin@unreliablesource.net>
date Thu, 20 Mar 2008 02:59:50 +0000
parents 4bcd3868a136
children 1ad74db7efa8
files ChangeLog libpurple/protocols/jabber/xdata.c
diffstat 2 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Mar 19 05:06:14 2008 +0000
+++ b/ChangeLog	Thu Mar 20 02:59:50 2008 +0000
@@ -16,6 +16,7 @@
 	* Fix a crash when starting if you have a Zephyr account
 	* Increase XMPP ping timeout to 120 seconds, to prevent poor network
 	  connections from timing out unnecessarily.
+	* Don't crash on XMPP forms with empty default values.
 
 	Pidgin:
 	* Remove a workaround for older versions gstreamer that was causing
--- a/libpurple/protocols/jabber/xdata.c	Wed Mar 19 05:06:14 2008 +0000
+++ b/libpurple/protocols/jabber/xdata.c	Thu Mar 20 02:59:50 2008 +0000
@@ -285,7 +285,10 @@
 
 			for(valuenode = xmlnode_get_child(fn, "value"); valuenode;
 					valuenode = xmlnode_get_next_twin(valuenode)) {
-				selected = g_list_prepend(selected, xmlnode_get_data(valuenode));
+				char *data = xmlnode_get_data(valuenode);
+				if (data != NULL) {
+					selected = g_list_prepend(selected, data);
+				}
 			}
 
 			for(optnode = xmlnode_get_child(fn, "option"); optnode;