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 ((sub_val = switch_channel_get_variable(channel, vname))) {
|
||||||
if (offset || ooffset) {
|
if (offset || ooffset) {
|
||||||
cloned_sub_val = strdup(sub_val);
|
cloned_sub_val = strdup(sub_val);
|
||||||
switch_assert(cloned_sub_val);
|
switch_assert(cloned_sub_val);
|
||||||
sub_val = cloned_sub_val;
|
sub_val = cloned_sub_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (offset >= 0) {
|
if (offset >= 0) {
|
||||||
sub_val += offset;
|
sub_val += offset;
|
||||||
} else if ((size_t)abs(offset) <= strlen(sub_val)) {
|
} else if ((size_t)abs(offset) <= strlen(sub_val)) {
|
||||||
sub_val = cloned_sub_val + (strlen(cloned_sub_val) + offset);
|
sub_val = cloned_sub_val + (strlen(cloned_sub_val) + offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ooffset > 0 && (size_t)ooffset < strlen(sub_val)) {
|
if (ooffset > 0 && (size_t)ooffset < strlen(sub_val)) {
|
||||||
if ((ptr = (char *)sub_val + ooffset)) {
|
if ((ptr = (char *)sub_val + ooffset)) {
|
||||||
*ptr = '\0';
|
*ptr = '\0';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue