From: Yuri Schaeffer Date: Thu, 23 Apr 2015 07:51:38 +0000 (+0000) Subject: Move existing node out of the way. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46572910c1f0090f121aa6c54cbf096b8972afd8;p=thirdparty%2Funbound.git Move existing node out of the way. formerr while parsing ipv6 ecs option git-svn-id: file:///svn/unbound/branches/edns-subnet@3409 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/edns-subnet/addrtree.c b/edns-subnet/addrtree.c index 729a3f001..9bba94913 100644 --- a/edns-subnet/addrtree.c +++ b/edns-subnet/addrtree.c @@ -391,7 +391,9 @@ addrtree_insert(struct addrtree *tree, const addrkey_t *addr, /* Case 4: split. */ if (!(newnode = node_create(tree, NULL, 0, 0))) return; + node->edge[index] = NULL; if (!edge_create(newnode, addr, common, node, index)) { + node->edge[index] = edge; clean_node(tree, newnode); tree->node_count--; free(newnode); diff --git a/util/data/msgparse.c b/util/data/msgparse.c index 4bf33b352..d8d94f188 100644 --- a/util/data/msgparse.c +++ b/util/data/msgparse.c @@ -955,7 +955,7 @@ parse_subnet_option(uint8_t* data, struct edns_data* edns, uint16_t opt_len) if (edns->subnet_addr_fam == EDNSSUBNET_ADDRFAM_IP4) { if (edns->subnet_source_mask > 32 || edns->subnet_scope_mask > 32) return; - } else if (edns->subnet_addr_fam != EDNSSUBNET_ADDRFAM_IP6) { + } else if (edns->subnet_addr_fam == EDNSSUBNET_ADDRFAM_IP6) { if (edns->subnet_source_mask > 128 || edns->subnet_scope_mask > 128) return; } else return;