diff --git a/src/switch_utils.c b/src/switch_utils.c index d9f4648ac3..3baeefe7f5 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -2892,11 +2892,23 @@ SWITCH_DECLARE(char *) switch_format_number(const char *num) char *r; size_t len; const char *p = num; - - if(*p == '+') { + + if (!p) { + return p; + } + + if (zstr(p)) { + return strdup(p); + } + + if (*p == '+') { p++; } + if (!switch_is_number(p)) { + return strdup(p); + } + len = strlen(p); /* region 1, TBD add more....*/ @@ -2907,7 +2919,6 @@ SWITCH_DECLARE(char *) switch_format_number(const char *num) } else { r = strdup(num); } - return r; }