[asterisk-commits] dhubbard: branch 1.6.0 r174085 - in /branches/1.6.0: ./ channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Feb 6 17:59:42 CST 2009
Author: dhubbard
Date: Fri Feb 6 17:59:42 2009
New Revision: 174085
URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=174085
Log:
Merged revisions 174084 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r174084 | dhubbard | 2009-02-06 17:51:56 -0600 (Fri, 06 Feb 2009) | 13 lines
Merged revisions 174082 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r174082 | dhubbard | 2009-02-06 17:36:03 -0600 (Fri, 06 Feb 2009) | 5 lines
check ast_strlen_zero() before calling ast_strdupa() in sip_uri_headers_cmp() and sip_uri_params_cmp()
patch by tecnoxarxa, modified by me
closes issue #13547
........
................
Modified:
branches/1.6.0/ (props changed)
branches/1.6.0/channels/chan_sip.c
Propchange: branches/1.6.0/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.
Modified: branches/1.6.0/channels/chan_sip.c
URL: http://svn.digium.com/svn-view/asterisk/branches/1.6.0/channels/chan_sip.c?view=diff&rev=174085&r1=174084&r2=174085
==============================================================================
--- branches/1.6.0/channels/chan_sip.c (original)
+++ branches/1.6.0/channels/chan_sip.c Fri Feb 6 17:59:42 2009
@@ -16554,19 +16554,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;
}
@@ -16681,12 +16694,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