X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fircd_parser.y;h=2937d92bd8afdb885377a2c01c7653853803f2eb;hb=54a8a6da6b3ca14e8dbd5b5a64c4675bfbc99c3c;hp=2bba81662e85bbd27a11c82cf3f33590a4f26eb8;hpb=8d3f0571c3983d18c55572796d86e44c1ed89ff0;p=ircu2.10.12-pk.git diff --git a/ircd/ircd_parser.y b/ircd/ircd_parser.y index 2bba816..2937d92 100644 --- a/ircd/ircd_parser.y +++ b/ircd/ircd_parser.y @@ -652,7 +652,7 @@ clientblock: CLIENT '{' clientitems '}' ';' { struct irc_in_addr addr; - unsigned char addrbits; + unsigned char addrbits = 0; if (ip && !ipmask_parse(ip, &addr, &addrbits)) { parse_error("Invalid IP address in block"); @@ -663,7 +663,10 @@ clientblock: CLIENT struct ConfItem *aconf = make_conf(CONF_CLIENT); aconf->username = username; aconf->host = host; - memcpy(&aconf->address.addr, &addr, sizeof(aconf->address.addr)); + if (ip) + memcpy(&aconf->address.addr, &addr, sizeof(aconf->address.addr)); + else + memset(&aconf->address.addr, 0, sizeof(aconf->address.addr)); aconf->addrbits = addrbits; aconf->name = ip; aconf->conn_class = c_class ? c_class : find_class("default");