- if((ip->address & ip->mask) != ip->address)
- {
- syslog(LOG_ERR, _("Network address and subnet mask for configuration variable %s in %s line %d"),
- cfg->variable, cfg->file, cfg->line);
- free(ip);
- return 0;
- }
-
- subnet = new_subnet();
- subnet->type = SUBNET_IPV4;
- subnet->net.ipv4.address = ip->address;
- subnet->net.ipv4.mask = ip->mask;
-
- free(ip);
+ if(subnet->type == SUBNET_IPV4)
+ if((subnet->net.ipv4.address & subnet->net.ipv4.mask) != subnet->net.ipv4.address)
+ {
+ syslog(LOG_ERR, _("Network address and mask length do not match for configuration variable %s in %s line %d"),
+ cfg->variable, cfg->file, cfg->line);
+ free(subnet);
+ return 0;
+ }