FS-7866: fix crash when running incorrect var api expansion syntax "eval ${${external_sip_ip}:4}"
This commit is contained in:
parent
0d06e6524a
commit
6b68cf4beb
|
@ -2365,25 +2365,26 @@ SWITCH_DECLARE(char *) switch_event_expand_headers_check(switch_event_t *event,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (offset || ooffset) {
|
if (sub_val) {
|
||||||
cloned_sub_val = strdup(sub_val);
|
if (offset || ooffset) {
|
||||||
switch_assert(cloned_sub_val);
|
cloned_sub_val = strdup(sub_val);
|
||||||
sub_val = cloned_sub_val;
|
switch_assert(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';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
switch_safe_free(expanded);
|
switch_safe_free(expanded);
|
||||||
} else {
|
} else {
|
||||||
switch_stream_handle_t stream = { 0 };
|
switch_stream_handle_t stream = { 0 };
|
||||||
|
|
Loading…
Reference in New Issue