mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-14 09:58:17 +00:00
add patch from FSCORE-136
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8776 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
@@ -1599,8 +1599,8 @@ SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel
|
|||||||
char *p, *c = NULL;
|
char *p, *c = NULL;
|
||||||
char *data, *indup;
|
char *data, *indup;
|
||||||
size_t sp = 0, len = 0, olen = 0, vtype = 0, br = 0, cpos, block = 128;
|
size_t sp = 0, len = 0, olen = 0, vtype = 0, br = 0, cpos, block = 128;
|
||||||
const char *q, *sub_val = NULL;
|
const char *q;
|
||||||
char *cloned_sub_val = NULL;
|
char *cloned_sub_val = NULL, *sub_val = NULL;
|
||||||
char *func_val = NULL;
|
char *func_val = NULL;
|
||||||
int nv = 0;
|
int nv = 0;
|
||||||
|
|
||||||
@@ -1743,7 +1743,7 @@ SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((sub_val = switch_channel_get_variable(channel, vname))) {
|
if ((sub_val = (char *) 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);
|
||||||
@@ -1751,7 +1751,11 @@ SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (offset >= 0) {
|
if (offset >= 0) {
|
||||||
sub_val += offset;
|
if (offset > strlen(sub_val)) {
|
||||||
|
*sub_val = '\0';
|
||||||
|
} else {
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user