diff libpurple/protocols/jabber/jingle/transport.c @ 31556:4b101cad58e7

Don't crash on invalid/unexpected jingle transport types. Fixes #13136. committer: John Bailey <rekkanoryo@rekkanoryo.org>
author nikita@beem-project.com
date Sat, 08 Jan 2011 02:58:06 +0000
parents a8cc50c2279f
children c9da7f5fbd0e
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jingle/transport.c	Sat Jan 08 02:34:47 2011 +0000
+++ b/libpurple/protocols/jabber/jingle/transport.c	Sat Jan 08 02:58:06 2011 +0000
@@ -159,8 +159,12 @@
 JingleTransport *
 jingle_transport_parse(xmlnode *transport)
 {
-	const gchar *type = xmlnode_get_namespace(transport);
-	return JINGLE_TRANSPORT_CLASS(g_type_class_ref(jingle_get_type(type)))->parse(transport);
+	const gchar *type_name = xmlnode_get_namespace(transport);
+	GType type = jingle_get_type(type_name);
+	if (type == G_TYPE_NONE)
+		return NULL;
+	
+	return JINGLE_TRANSPORT_CLASS(g_type_class_ref(type))->parse(transport);
 }
 
 xmlnode *