- Fix #1247: unbound does not shorten source prefix length when
forwarding ECS.
- Properly check for allocation failure in local_data_find_tag_datas.
+ - Fix #1249: unbound doesn't return FORMERR to bogus ECS.
11 April 2017: Ralph
- Display ECS module memory usage.
if((ecs_opt = edns_opt_list_find(
qstate->edns_opts_front_in,
qstate->env->cfg->client_subnet_opcode))) {
- if(parse_subnet_option(ecs_opt, &sq->ecs_client_in)) {
- sq->subnet_downstream = 1;
+ if(!parse_subnet_option(ecs_opt, &sq->ecs_client_in)) {
+ /* Wrongly formatted ECS option. RFC mandates to
+ * return FORMERROR. */
+ qstate->return_rcode = LDNS_RCODE_FORMERR;
+ qstate->ext_state[id] = module_finished;
+ return;
}
+ sq->subnet_downstream = 1;
}
else if(qstate->mesh_info->reply_list) {
subnet_option_from_ss(