fix logic bug
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7881 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
67d310d527
commit
54eb07efc3
|
@ -1704,22 +1704,23 @@ SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel
|
|||
}
|
||||
}
|
||||
|
||||
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';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue