mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 07:35:26 +00:00
Merge branch '4671-calling-dns_qpkey_toname-twice-fails' into 'main'
Resolve "Calling dns_qpkey_toname twice fails." Closes #4671 See merge request isc-projects/bind9!8948
This commit is contained in:
@@ -259,13 +259,12 @@ dns_qpkey_toname(const dns_qpkey_t key, size_t keylen, dns_name_t *name) {
|
|||||||
REQUIRE(name->buffer != NULL);
|
REQUIRE(name->buffer != NULL);
|
||||||
REQUIRE(name->offsets != NULL);
|
REQUIRE(name->offsets != NULL);
|
||||||
|
|
||||||
|
dns_name_reset(name);
|
||||||
|
|
||||||
if (keylen == 0) {
|
if (keylen == 0) {
|
||||||
dns_name_reset(name);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
isc_buffer_clear(name->buffer);
|
|
||||||
|
|
||||||
/* Scan the key looking for label boundaries */
|
/* Scan the key looking for label boundaries */
|
||||||
for (offset = 0; offset <= keylen; offset++) {
|
for (offset = 0; offset <= keylen; offset++) {
|
||||||
INSIST(key[offset] >= SHIFT_NOBYTE &&
|
INSIST(key[offset] >= SHIFT_NOBYTE &&
|
||||||
|
@@ -94,6 +94,7 @@ ISC_RUN_TEST_IMPL(qpkey_name) {
|
|||||||
dns_qpkey_t key;
|
dns_qpkey_t key;
|
||||||
dns_fixedname_t fn1, fn2;
|
dns_fixedname_t fn1, fn2;
|
||||||
dns_name_t *in = NULL, *out = NULL;
|
dns_name_t *in = NULL, *out = NULL;
|
||||||
|
char namebuf[DNS_NAME_FORMATSIZE];
|
||||||
|
|
||||||
in = dns_fixedname_initname(&fn1);
|
in = dns_fixedname_initname(&fn1);
|
||||||
if (testcases[i].len != 0) {
|
if (testcases[i].len != 0) {
|
||||||
@@ -111,6 +112,9 @@ ISC_RUN_TEST_IMPL(qpkey_name) {
|
|||||||
out = dns_fixedname_initname(&fn2);
|
out = dns_fixedname_initname(&fn2);
|
||||||
dns_qpkey_toname(key, len, out);
|
dns_qpkey_toname(key, len, out);
|
||||||
assert_true(dns_name_equal(in, out));
|
assert_true(dns_name_equal(in, out));
|
||||||
|
/* check that 'out' is properly reset by dns_qpkey_toname */
|
||||||
|
dns_qpkey_toname(key, len, out);
|
||||||
|
dns_name_format(out, namebuf, sizeof(namebuf));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user