diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index dd2048fa01..d5063b661a 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -11323,6 +11323,12 @@ static void ss7_start_call(struct dahdi_pvt *p, struct dahdi_ss7 *linkset) #if defined(HAVE_SS7) static void ss7_apply_plan_to_number(char *buf, size_t size, const struct dahdi_ss7 *ss7, const char *number, const unsigned nai) { + if (ast_strlen_zero(number)) { /* make sure a number exists so prefix isn't placed on an empty string */ + if (size) { + *buf = '\0'; + } + return; + } switch (nai) { case SS7_NAI_INTERNATIONAL: snprintf(buf, size, "%s%s", ss7->internationalprefix, number); @@ -12347,6 +12353,12 @@ static void apply_plan_to_number(char *buf, size_t size, const struct dahdi_pri snprintf(buf, size, "%s", number); return; } + if (ast_strlen_zero(number)) { /* make sure a number exists so prefix isn't placed on an empty string */ + if (size) { + *buf = '\0'; + } + return; + } switch (plan) { case PRI_INTERNATIONAL_ISDN: /* Q.931 dialplan == 0x11 international dialplan => prepend international prefix digits */ snprintf(buf, size, "%s%s", pri->internationalprefix, number);