Skip to content

Commit

Permalink
Fix str comparison in IP matching
Browse files Browse the repository at this point in the history
Closes #1077
  • Loading branch information
bogdan-iancu committed Mar 21, 2017
1 parent ed89fe8 commit ec8842e
Showing 1 changed file with 19 additions and 19 deletions.
38 changes: 19 additions & 19 deletions resolve.c
Expand Up @@ -617,29 +617,29 @@ int check_ip_address(struct ip_addr* ip, str *name,

/* maybe we are lucky and name it's an ip */
s=ip_addr2a(ip);
if (s){
LM_DBG("params %s, %.*s, %d\n", s, name->len, name->s, resolver);
len=strlen(s);

/* check if name->s is an ipv6 address or an ipv6 address ref. */
if ((ip->af==AF_INET6) &&
( ((len==name->len)&&(strncasecmp(name->s, s, name->len)==0))
||
((len==(name->len-2))&&(name->s[0]=='[')&&
(name->s[name->len-1]==']')&&
(strncasecmp(name->s+1, s, len)==0))
)
)
return 0;
else

if (strncmp(name->s, s, name->len)==0)
return 0;
}else{
if (s==NULL) {
LM_CRIT("could not convert ip address\n");
return -1;
}

LM_DBG("params %s, %.*s, %d\n", s, name->len, name->s, resolver);
len=strlen(s);

/* force first a full matching (v4 and v6) */
if ( (len==name->len) && (strncasecmp(name->s, s, name->len)==0) )
return 0;

/* check if name->s is an ipv6 address ref. */
if (ip->af==AF_INET6 &&
( ((len==name->len)&&(strncasecmp(name->s, s, name->len)==0))

This comment has been minimized.

Copy link
@liviuchircu

liviuchircu Mar 21, 2017

Member

dead code

This comment has been minimized.

Copy link
@bogdan-iancu

bogdan-iancu Mar 21, 2017

Author Member

ok, removed, see aec22a3

||
((len==(name->len-2))&&(name->s[0]=='[')&&
(name->s[name->len-1]==']')&&
(strncasecmp(name->s+1, s, len)==0))
)
)
return 0;

if (port==0) port=SIP_PORT;
if (resolver&DO_DNS){
LM_DBG("doing dns lookup\n");
Expand Down

0 comments on commit ec8842e

Please sign in to comment.