From: Brian West Date: Mon, 22 Nov 2010 21:32:23 +0000 (-0600) Subject: FS-535: be more careful and catch ipv6 edge case X-Git-Tag: v1.2-rc1~247^2~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87edbed6bbcdb351b9502f66e78b01116ae1ab00;p=thirdparty%2Ffreeswitch.git FS-535: be more careful and catch ipv6 edge case --- diff --git a/src/mod/endpoints/mod_sofia/sofia_glue.c b/src/mod/endpoints/mod_sofia/sofia_glue.c index 23d3f2904e..57a2bfaa6a 100644 --- a/src/mod/endpoints/mod_sofia/sofia_glue.c +++ b/src/mod/endpoints/mod_sofia/sofia_glue.c @@ -5740,6 +5740,10 @@ char *sofia_glue_get_register_host(const char *uri) const char *s; char *p = NULL; + if (zstr(uri)) { + return NULL; + } + if ((s = switch_stristr("sip:", uri))) { s += 4; } else if ((s = switch_stristr("sips:", uri))) { @@ -5755,9 +5759,12 @@ char *sofia_glue_get_register_host(const char *uri) /* remove port for register_host for testing nat acl take into account ipv6 addresses which are required to have brackets around the addr */ - if ((p = strchr(register_host, ']')) && (*(p + 1) == ':')) { - *(p + 1) = '\0'; - } else { + + if ((p = strchr(register_host, ']'))) { + if (*(p + 1) == ':') { + *(p + 1) = '\0'; + } + } else { if ((p = strrchr(register_host, ':'))) { *p = '\0'; }