[Freeswitch-svn] [commit] r7881 - freeswitch/trunk/src

Freeswitch SVN anthm at freeswitch.org
Wed Mar 12 11:17:19 EDT 2008


Author: anthm
Date: Wed Mar 12 11:17:18 2008
New Revision: 7881

Modified:
   freeswitch/trunk/src/switch_channel.c

Log:
fix logic bug

Modified: freeswitch/trunk/src/switch_channel.c
==============================================================================
--- freeswitch/trunk/src/switch_channel.c	(original)
+++ freeswitch/trunk/src/switch_channel.c	Wed Mar 12 11:17:18 2008
@@ -1704,22 +1704,23 @@
 						}
 					}
 
-					sub_val = switch_channel_get_variable(channel, vname);
-					if (offset || ooffset) {
-						cloned_sub_val = strdup(sub_val);
-						switch_assert(cloned_sub_val);
-						sub_val = cloned_sub_val;
-					}
+					if ((sub_val = switch_channel_get_variable(channel, vname))) {
+						if (offset || ooffset) {
+							cloned_sub_val = strdup(sub_val);
+							switch_assert(cloned_sub_val);
+							sub_val = cloned_sub_val;
+						}
 
-					if (offset >= 0) {
-						sub_val += offset;
-					} else if ((size_t)abs(offset) <= strlen(sub_val)) {
-						sub_val = cloned_sub_val + (strlen(cloned_sub_val) + offset);
-					}
+						if (offset >= 0) {
+							sub_val += offset;
+						} else if ((size_t)abs(offset) <= strlen(sub_val)) {
+							sub_val = cloned_sub_val + (strlen(cloned_sub_val) + offset);
+						}
 
-					if (ooffset > 0 && (size_t)ooffset < strlen(sub_val)) {
-						if ((ptr = (char *)sub_val + ooffset)) {
-							*ptr = '\0';
+						if (ooffset > 0 && (size_t)ooffset < strlen(sub_val)) {
+							if ((ptr = (char *)sub_val + ooffset)) {
+								*ptr = '\0';
+							}
 						}
 					}
 



More information about the Freeswitch-svn mailing list