[asterisk-commits] qwell: branch 1.4 r63099 - /branches/1.4/res/res_jabber.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Fri May 4 13:03:50 MST 2007


Author: qwell
Date: Fri May  4 15:03:49 2007
New Revision: 63099

URL: http://svn.digium.com/view/asterisk?view=rev&rev=63099
Log:
Fix a crash when checking version attribute in an incoming XML caps element.

Issue 9667, patch by phsultan.

Modified:
    branches/1.4/res/res_jabber.c

Modified: branches/1.4/res/res_jabber.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/res/res_jabber.c?view=diff&rev=63099&r1=63098&r2=63099
==============================================================================
--- branches/1.4/res/res_jabber.c (original)
+++ branches/1.4/res/res_jabber.c Fri May  4 15:03:49 2007
@@ -160,7 +160,7 @@
 
 struct aji_client_container clients;
 
-struct aji_capabilities *capabilities;
+struct aji_capabilities *capabilities = NULL;
 
 /*! \brief Global flags, initialized to default values */
 static struct ast_flags globalflags = { AJI_AUTOPRUNE | AJI_AUTOREGISTER };
@@ -207,6 +207,15 @@
 	free(obj);
 }
 
+/*!
+ * \brief Find version in XML stream and populate our capabilities list
+ * \param node the node attribute in the caps element we'll look for or add to 
+ * our list
+ * \param version the version attribute in the caps element we'll look for or 
+ * add to our list
+ * \param pak the XML stanza we're processing
+ * \return a pointer to the added or found aji_version structure
+ */ 
 static struct aji_version *aji_find_version(char *node, char *version, ikspak *pak)
 {
 	struct aji_capabilities *list = NULL;
@@ -226,6 +235,8 @@
 					 return res;
 				 res = res->next;
 			}
+			/* Specified version not found. Let's add it to 
+			   this node in our capabilities list */
 			if(!res) {
 				res = (struct aji_version *)malloc(sizeof(struct aji_version));
 				if(!res) {
@@ -242,6 +253,7 @@
 		}
 		list = list->next;
 	}
+	/* Specified node not found. Let's add it our capabilities list */
 	if(!list) {
 		list = (struct aji_capabilities *)malloc(sizeof(struct aji_capabilities));
 		if(!list) {
@@ -257,7 +269,7 @@
 		ast_copy_string(res->version, version, sizeof(res->version));
 		res->jingle = 0;
 		res->parent = list;
-		res->next = list->versions;
+		res->next = NULL;
 		list->versions = res;
 		list->next = capabilities;
 		capabilities = list;



More information about the asterisk-commits mailing list