X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fsubnet.c;h=a4ec2b31b9e14d996dd5b4f58f45ef4e745ba1b3;hp=b52dfa53b3a37d6f068e1a57e9f47e7b3dc15331;hb=ddcf079cad3351f0823fc07af15787d02e5f1901;hpb=672ad5634cbedfbd6345e887935eed3e806f1e2d diff --git a/src/subnet.c b/src/subnet.c index b52dfa53..a4ec2b31 100644 --- a/src/subnet.c +++ b/src/subnet.c @@ -1,7 +1,7 @@ /* subnet.c -- handle subnet lookups and lists - Copyright (C) 2000-2004 Guus Sliepen , - 2000-2004 Ivo Timmermans + Copyright (C) 2000-2006 Guus Sliepen , + 2000-2005 Ivo Timmermans This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -247,6 +247,11 @@ bool net2str(char *netstr, int len, const subnet_t *subnet) { cp(); + if(!netstr || !subnet) { + logger(LOG_ERR, _("net2str() was called with netstr=%p, subnet=%p!\n"), netstr, subnet); + return false; + } + switch (subnet->type) { case SUBNET_MAC: snprintf(netstr, len, "%hx:%hx:%hx:%hx:%hx:%hx", @@ -337,7 +342,7 @@ subnet_t *lookup_subnet_ipv4(const ipv4_t *address) break; } - if(!maskcmp(address, &p->net.ipv4.address, p->net.ipv4.prefixlength, sizeof(ipv4_t))) + if(!maskcmp(address, &p->net.ipv4.address, p->net.ipv4.prefixlength)) break; else { /* Otherwise, see if there is a bigger enclosing subnet */ @@ -373,7 +378,7 @@ subnet_t *lookup_subnet_ipv6(const ipv6_t *address) if(p->type != SUBNET_IPV6) return NULL; - if(!maskcmp(address, &p->net.ipv6.address, p->net.ipv6.prefixlength, sizeof(ipv6_t))) + if(!maskcmp(address, &p->net.ipv6.address, p->net.ipv6.prefixlength)) break; else { /* Otherwise, see if there is a bigger enclosing subnet */ @@ -424,9 +429,6 @@ void subnet_update(node_t *owner, subnet_t *subnet, bool up) { execute_script(name, envp); } - net2str(netstr, sizeof netstr, subnet); - envp[6] = envp[7] = NULL; - for(i = 0; i < (owner != myself ? 6 : 4); i++) free(envp[i]);