[asterisk-commits] lmadsen: tag 1.4.23.2 r180834 - in /tags/1.4.23.2: .version channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Mar 10 10:53:43 CDT 2009


Author: lmadsen
Date: Tue Mar 10 10:53:39 2009
New Revision: 180834

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=180834
Log:
Patch for AST-2009-002-1.4

Modified:
    tags/1.4.23.2/.version
    tags/1.4.23.2/channels/chan_sip.c

Modified: tags/1.4.23.2/.version
URL: http://svn.digium.com/svn-view/asterisk/tags/1.4.23.2/.version?view=diff&rev=180834&r1=180833&r2=180834
==============================================================================
--- tags/1.4.23.2/.version (original)
+++ tags/1.4.23.2/.version Tue Mar 10 10:53:39 2009
@@ -1,1 +1,1 @@
-1.4.23.1
+1.4.23.2

Modified: tags/1.4.23.2/channels/chan_sip.c
URL: http://svn.digium.com/svn-view/asterisk/tags/1.4.23.2/channels/chan_sip.c?view=diff&rev=180834&r1=180833&r2=180834
==============================================================================
--- tags/1.4.23.2/channels/chan_sip.c (original)
+++ tags/1.4.23.2/channels/chan_sip.c Tue Mar 10 10:53:39 2009
@@ -13917,19 +13917,32 @@
  */
 static int sip_uri_params_cmp(const char *input1, const char *input2) 
 {
-	char *params1 = ast_strdupa(input1);
-	char *params2 = ast_strdupa(input2);
+	char *params1 = NULL;
+	char *params2 = NULL;
 	char *pos1;
 	char *pos2;
+	int zerolength1 = 0;
+	int zerolength2 = 0;
 	int maddrmatch = 0;
 	int ttlmatch = 0;
 	int usermatch = 0;
 	int methodmatch = 0;
 
+	if (ast_strlen_zero(input1)) {
+		zerolength1 = 1;
+	} else {
+		params1 = ast_strdupa(input1);
+	}
+	if (ast_strlen_zero(input2)) {
+		zerolength2 = 1;
+	} else {
+		params2 = ast_strdupa(input2);
+	}
+
 	/*Quick optimization. If both params are zero-length, then
 	 * they match
 	 */
-	if (ast_strlen_zero(params1) && ast_strlen_zero(params2)) {
+	if (zerolength1 && zerolength2) {
 		return 0;
 	}
 
@@ -14044,12 +14057,24 @@
  */
 static int sip_uri_headers_cmp(const char *input1, const char *input2)
 {
-	char *headers1 = ast_strdupa(input1);
-	char *headers2 = ast_strdupa(input2);
-	int zerolength1 = ast_strlen_zero(headers1);
-	int zerolength2 = ast_strlen_zero(headers2);
+	char *headers1 = NULL;
+	char *headers2 = NULL;
+	int zerolength1 = 0;
+	int zerolength2 = 0;
 	int different = 0;
 	char *header1;
+
+	if (ast_strlen_zero(input1)) {
+		zerolength1 = 1;
+	} else {
+		headers1 = ast_strdupa(input1);
+	}
+	
+	if (ast_strlen_zero(input2)) {
+		zerolength2 = 1;
+	} else {
+		headers2 = ast_strdupa(input2);
+	}
 
 	if ((zerolength1 && !zerolength2) ||
 			(zerolength2 && !zerolength1))




More information about the asterisk-commits mailing list