diff --git a/src/common.c b/src/common.c index e8106e2..8cd7110 100644 --- a/src/common.c +++ b/src/common.c @@ -609,7 +609,7 @@ unsigned long getip46(int family, unsigned char *name, struct sockaddr *sa){ if(detect != -1){ if(family == 4 && detect != AF_INET) return 0; *SAFAMILY(sa) = (family == 6)? AF_INET6 : detect; - return inet_pton(*SAFAMILY(sa), (char *)name, SAADDR(sa))? *SAFAMILY(sa) : 0; + return inet_pton(*SAFAMILY(sa), (char *)name, SAADDR(sa))>0? *SAFAMILY(sa) : 0; } diff --git a/src/conf.c b/src/conf.c index 3d7a545..8409772 100644 --- a/src/conf.c +++ b/src/conf.c @@ -766,7 +766,7 @@ static int h_parent(int argc, unsigned char **argv){ } cidr = strchr(argv[3], '/'); if(cidr) *cidr = 0; - getip46(46, argv[3], (struct sockaddr *)&chains->addr); + if(!getip46(46, argv[3], (struct sockaddr *)&chains->addr)) return (5); chains->exthost = (unsigned char *)mystrdup((char *)argv[3]); if(!chains->exthost) return 21; if(cidr){