mirror of
https://github.com/isc-projects/bind9.git
synced 2026-02-25 02:42:33 -05:00
Merge branch '3279-lib-dns-ncache-c-rdataset_settrust-fails-to-set-trust-on-called-rdataset' into 'main'
Resolve "lib/dns/ncache.c:rdataset_settrust() fails to set trust on called rdataset" Closes #3279 See merge request isc-projects/bind9!6129
This commit is contained in:
commit
746b3ac88c
6 changed files with 59 additions and 0 deletions
3
CHANGES
3
CHANGES
|
|
@ -1,3 +1,6 @@
|
|||
5863. [bug] If there was a pending negative cache DS entry,
|
||||
validations depending upon it could fail. [GL #3279]
|
||||
|
||||
5862. [bug] dig returned a 0 exit status on UDP connection failure.
|
||||
[GL #3235]
|
||||
|
||||
|
|
|
|||
|
|
@ -55,6 +55,10 @@ ns3.secure A 10.53.0.3
|
|||
insecure NS ns.insecure
|
||||
ns.insecure A 10.53.0.3
|
||||
|
||||
; A second insecure subdomain
|
||||
insecure2 NS ns.insecure2
|
||||
ns.insecure2 A 10.53.0.3
|
||||
|
||||
; A secure subdomain we're going to inject bogus data into
|
||||
bogus NS ns.bogus
|
||||
ns.bogus A 10.53.0.3
|
||||
|
|
|
|||
27
bin/tests/system/dnssec/ns3/insecure2.example.db
Normal file
27
bin/tests/system/dnssec/ns3/insecure2.example.db
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
; Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
||||
;
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
;
|
||||
; This Source Code Form is subject to the terms of the Mozilla Public
|
||||
; License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
; file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
;
|
||||
; See the COPYRIGHT file distributed with this work for additional
|
||||
; information regarding copyright ownership.
|
||||
|
||||
$TTL 300 ; 5 minutes
|
||||
@ IN SOA mname1. . (
|
||||
2000042407 ; serial
|
||||
20 ; refresh (20 seconds)
|
||||
20 ; retry (20 seconds)
|
||||
1814400 ; expire (3 weeks)
|
||||
3600 ; minimum (1 hour)
|
||||
)
|
||||
NS ns
|
||||
ns A 10.53.0.3
|
||||
|
||||
a A 10.0.0.1
|
||||
b A 10.0.0.2
|
||||
d A 10.0.0.4
|
||||
x DNSKEY 258 3 5 Cg==
|
||||
z A 10.0.0.26
|
||||
|
|
@ -78,6 +78,12 @@ zone "insecure.example" {
|
|||
allow-update { any; };
|
||||
};
|
||||
|
||||
zone "insecure2.example" {
|
||||
type primary;
|
||||
file "insecure2.example.db";
|
||||
allow-update { any; };
|
||||
};
|
||||
|
||||
zone "insecure.nsec3.example" {
|
||||
type primary;
|
||||
file "insecure.nsec3.example.db";
|
||||
|
|
|
|||
|
|
@ -4434,5 +4434,23 @@ n=$((n+1))
|
|||
test "$ret" -eq 0 || echo_i "failed"
|
||||
status=$((status+ret))
|
||||
|
||||
# Check that a query against a validating resolver succeeds when there is
|
||||
# a negative cache entry with trust level "pending" for the DS. Prime
|
||||
# with a +cd DS query to produce the negative cache entry, then send a
|
||||
# query that uses that entry as part of the validation process. [GL #3279]
|
||||
echo_i "check that pending negative DS cache entry validates ($n)"
|
||||
ret=0
|
||||
dig_with_opts @10.53.0.4 +cd insecure2.example. ds > dig.out.prime.ns4.test$n || ret=1
|
||||
grep "flags: qr rd ra cd;" dig.out.prime.ns4.test$n >/dev/null || ret=1
|
||||
grep "status: NOERROR" dig.out.prime.ns4.test$n >/dev/null || ret=1
|
||||
grep "ANSWER: 0, AUTHORITY: 4, " dig.out.prime.ns4.test$n > /dev/null || ret=1
|
||||
dig_with_opts @10.53.0.4 a.insecure2.example. a > dig.out.ns4.test$n || ret=1
|
||||
grep "ANSWER: 1, AUTHORITY: 1, " dig.out.ns4.test$n > /dev/null || ret=1
|
||||
grep "flags: qr rd ra;" dig.out.ns4.test$n >/dev/null || ret=1
|
||||
grep "status: NOERROR" dig.out.ns4.test$n >/dev/null || ret=1
|
||||
n=$((n+1))
|
||||
if [ "$ret" -ne 0 ]; then echo_i "failed"; fi
|
||||
status=$((status+ret))
|
||||
|
||||
echo_i "exit status: $status"
|
||||
[ $status -eq 0 ] || exit 1
|
||||
|
|
|
|||
|
|
@ -504,6 +504,7 @@ rdataset_settrust(dns_rdataset_t *rdataset, dns_trust_t trust) {
|
|||
unsigned char *raw = rdataset->private3;
|
||||
|
||||
raw[-1] = (unsigned char)trust;
|
||||
rdataset->trust = trust;
|
||||
}
|
||||
|
||||
static dns_rdatasetmethods_t rdataset_methods = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue