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'; + } } }
participants (1)
-
Freeswitch SVN