mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-25 02:47:54 -04:00
fix: usr: DSYNC record incorrectly used two octets for the Scheme Field
When creating the `DSYNC` record from a structure, `uint16_tobuffer` was used instead of `uint8_tobuffer` when adding the scheme, causing a `DSYNC` record that was one octet too long. This has been fixed. Closes #5711 Merge branch '5711-dsync_fromstruct-produces-an-invalid-record' into 'main' See merge request isc-projects/bind9!11477
This commit is contained in:
commit
a20bbb629a
2 changed files with 12 additions and 11 deletions
|
|
@ -238,7 +238,7 @@ fromstruct_dsync(ARGS_FROMSTRUCT) {
|
|||
UNUSED(rdclass);
|
||||
|
||||
RETERR(uint16_tobuffer(dsync->type, target));
|
||||
RETERR(uint16_tobuffer(dsync->scheme, target));
|
||||
RETERR(uint8_tobuffer(dsync->scheme, target));
|
||||
RETERR(uint16_tobuffer(dsync->port, target));
|
||||
dns_name_toregion(&dsync->target, ®ion);
|
||||
return isc_buffer_copyregion(target, ®ion);
|
||||
|
|
|
|||
|
|
@ -1793,43 +1793,43 @@ ISC_RUN_TEST_IMPL(dsync) {
|
|||
/*
|
||||
* Known type and known scheme.
|
||||
*/
|
||||
TEXT_VALID("CDS NOTIFY 0 example.com"),
|
||||
TEXT_VALID("CDS NOTIFY 0 example.com."),
|
||||
/*
|
||||
* Known type and unknown scheme.
|
||||
*/
|
||||
TEXT_VALID("CDS 3 0 example.com"),
|
||||
TEXT_VALID("CDS 3 0 example.com."),
|
||||
/*
|
||||
* Unknown type and known scheme.
|
||||
*/
|
||||
TEXT_VALID("TYPE1000 NOTIFY 0 example.com"),
|
||||
TEXT_VALID("TYPE1000 NOTIFY 0 example.com."),
|
||||
/*
|
||||
* Unknown type and unknown scheme.
|
||||
*/
|
||||
TEXT_VALID("TYPE1000 3 0 example.com"),
|
||||
TEXT_VALID("TYPE1000 3 0 example.com."),
|
||||
/*
|
||||
* Unknown type and unknown scheme, max port.
|
||||
*/
|
||||
TEXT_VALID("TYPE1000 3 65535 example.com"),
|
||||
TEXT_VALID("TYPE1000 3 65535 example.com."),
|
||||
/*
|
||||
* Unknown type and max scheme, max port.
|
||||
*/
|
||||
TEXT_VALID("TYPE64000 255 65535 example.com"),
|
||||
TEXT_VALID("TYPE64000 255 65535 example.com."),
|
||||
/*
|
||||
* Invalid type and max scheme, max port.
|
||||
*/
|
||||
TEXT_INVALID("INVALID 255 65536 example.com"),
|
||||
TEXT_INVALID("INVALID 255 65536 example.com."),
|
||||
/*
|
||||
* Unknown type and too big scheme, max port.
|
||||
*/
|
||||
TEXT_INVALID("TYPE1000 256 65536 example.com"),
|
||||
TEXT_INVALID("TYPE1000 256 65536 example.com."),
|
||||
/*
|
||||
* Unknown type and unknown scheme, port too big.
|
||||
*/
|
||||
TEXT_INVALID("TYPE1000 3 65536 example.com"),
|
||||
TEXT_INVALID("TYPE1000 3 65536 example.com."),
|
||||
/*
|
||||
* Unknown type and bad scheme, max port.
|
||||
*/
|
||||
TEXT_INVALID("TYPE1000 UNKNOWN 65535 example.com"),
|
||||
TEXT_INVALID("TYPE1000 UNKNOWN 65535 example.com."),
|
||||
/*
|
||||
* Sentinel.
|
||||
*/
|
||||
|
|
@ -3376,6 +3376,7 @@ ISC_TEST_ENTRY(csync)
|
|||
ISC_TEST_ENTRY(dnskey)
|
||||
ISC_TEST_ENTRY(doa)
|
||||
ISC_TEST_ENTRY(ds)
|
||||
ISC_TEST_ENTRY(dsync)
|
||||
ISC_TEST_ENTRY(eid)
|
||||
ISC_TEST_ENTRY(hip)
|
||||
ISC_TEST_ENTRY(https_svcb)
|
||||
|
|
|
|||
Loading…
Reference in a new issue