2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 06:25:31 +00:00

3007. [bug] Named failed to preserve the case of domain names in

rdata which is no compressable when writing master
                        files.  [RT #22863]
This commit is contained in:
Mark Andrews
2011-01-13 00:55:49 +00:00
parent b70c6fb6ff
commit 38b84a1fcf
6 changed files with 20 additions and 25 deletions

View File

@@ -1,3 +1,7 @@
3007. [bug] Named failed to preserve the case of domain names in
rdata which is no compressable when writing master
files. [RT #22863]
3006. [func] Allow dynamically generated TSIG keys to be preserved 3006. [func] Allow dynamically generated TSIG keys to be preserved
across restarts of named. Initially this is for across restarts of named. Initially this is for
TSIG keys generated using GSSAPI. [RT #22639] TSIG keys generated using GSSAPI. [RT #22639]

View File

@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: rdata.c,v 1.207 2010/11/17 23:47:08 tbox Exp $ */ /* $Id: rdata.c,v 1.208 2011/01/13 00:55:49 marka Exp $ */
/*! \file */ /*! \file */
@@ -1150,6 +1150,11 @@ name_prefix(dns_name_t *name, dns_name_t *origin, dns_name_t *target) {
if (l1 == l2) if (l1 == l2)
goto return_false; goto return_false;
/* Master files should be case preserving. */
dns_name_getlabelsequence(name, l1 - l2, l2, target);
if (!dns_name_caseequal(origin, target))
goto return_false;
dns_name_getlabelsequence(name, 0, l1 - l2, target); dns_name_getlabelsequence(name, 0, l1 - l2, target);
return (ISC_TRUE); return (ISC_TRUE);

View File

@@ -14,7 +14,7 @@
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: hip_55.c,v 1.6 2009/12/04 22:06:37 tbox Exp $ */ /* $Id: hip_55.c,v 1.7 2011/01/13 00:55:49 marka Exp $ */
/* reviewed: TBC */ /* reviewed: TBC */
@@ -122,8 +122,6 @@ static inline isc_result_t
totext_hip(ARGS_TOTEXT) { totext_hip(ARGS_TOTEXT) {
isc_region_t region; isc_region_t region;
dns_name_t name; dns_name_t name;
dns_name_t prefix;
isc_boolean_t sub;
size_t length, key_len, hit_len; size_t length, key_len, hit_len;
unsigned char algorithm; unsigned char algorithm;
char buf[sizeof("225 ")]; char buf[sizeof("225 ")];
@@ -175,12 +173,10 @@ totext_hip(ARGS_TOTEXT) {
* Rendezvous Servers. * Rendezvous Servers.
*/ */
dns_name_init(&name, NULL); dns_name_init(&name, NULL);
dns_name_init(&prefix, NULL);
while (region.length > 0) { while (region.length > 0) {
dns_name_fromregion(&name, &region); dns_name_fromregion(&name, &region);
sub = name_prefix(&name, tctx->origin, &prefix); RETERR(dns_name_totext(&name, ISC_FALSE, target));
RETERR(dns_name_totext(&prefix, sub, target));
isc_region_consume(&region, name.length); isc_region_consume(&region, name.length);
if (region.length > 0) if (region.length > 0)
RETERR(str_totext(tctx->linebreak, target)); RETERR(str_totext(tctx->linebreak, target));

View File

@@ -14,7 +14,7 @@
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: ipseckey_45.c,v 1.9 2009/12/04 22:06:37 tbox Exp $ */ /* $Id: ipseckey_45.c,v 1.10 2011/01/13 00:55:49 marka Exp $ */
#ifndef RDATA_GENERIC_IPSECKEY_45_C #ifndef RDATA_GENERIC_IPSECKEY_45_C
#define RDATA_GENERIC_IPSECKEY_45_C #define RDATA_GENERIC_IPSECKEY_45_C
@@ -120,8 +120,6 @@ static inline isc_result_t
totext_ipseckey(ARGS_TOTEXT) { totext_ipseckey(ARGS_TOTEXT) {
isc_region_t region; isc_region_t region;
dns_name_t name; dns_name_t name;
dns_name_t prefix;
isc_boolean_t sub;
char buf[sizeof("255 ")]; char buf[sizeof("255 ")];
unsigned short num; unsigned short num;
unsigned short gateway; unsigned short gateway;
@@ -130,7 +128,6 @@ totext_ipseckey(ARGS_TOTEXT) {
REQUIRE(rdata->length >= 3); REQUIRE(rdata->length >= 3);
dns_name_init(&name, NULL); dns_name_init(&name, NULL);
dns_name_init(&prefix, NULL);
if (rdata->data[1] > 3U) if (rdata->data[1] > 3U)
return (ISC_R_NOTIMPLEMENTED); return (ISC_R_NOTIMPLEMENTED);
@@ -183,8 +180,7 @@ totext_ipseckey(ARGS_TOTEXT) {
case 3: case 3:
dns_name_fromregion(&name, &region); dns_name_fromregion(&name, &region);
sub = name_prefix(&name, tctx->origin, &prefix); RETERR(dns_name_totext(&name, ISC_FALSE, target));
RETERR(dns_name_totext(&prefix, sub, target));
isc_region_consume(&region, name_length(&name)); isc_region_consume(&region, name_length(&name));
break; break;
} }

View File

@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: nsec_47.c,v 1.13 2009/12/04 22:06:37 tbox Exp $ */ /* $Id: nsec_47.c,v 1.14 2011/01/13 00:55:49 marka Exp $ */
/* reviewed: Wed Mar 15 18:21:15 PST 2000 by brister */ /* reviewed: Wed Mar 15 18:21:15 PST 2000 by brister */
@@ -88,20 +88,18 @@ totext_nsec(ARGS_TOTEXT) {
isc_region_t sr; isc_region_t sr;
unsigned int i, j, k; unsigned int i, j, k;
dns_name_t name; dns_name_t name;
dns_name_t prefix;
isc_boolean_t sub;
unsigned int window, len; unsigned int window, len;
REQUIRE(rdata->type == 47); REQUIRE(rdata->type == 47);
REQUIRE(rdata->length != 0); REQUIRE(rdata->length != 0);
UNUSED(tctx);
dns_name_init(&name, NULL); dns_name_init(&name, NULL);
dns_name_init(&prefix, NULL);
dns_rdata_toregion(rdata, &sr); dns_rdata_toregion(rdata, &sr);
dns_name_fromregion(&name, &sr); dns_name_fromregion(&name, &sr);
isc_region_consume(&sr, name_length(&name)); isc_region_consume(&sr, name_length(&name));
sub = name_prefix(&name, tctx->origin, &prefix); RETERR(dns_name_totext(&name, ISC_FALSE, target));
RETERR(dns_name_totext(&prefix, sub, target));
for (i = 0; i < sr.length; i += len) { for (i = 0; i < sr.length; i += len) {

View File

@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE. * PERFORMANCE OF THIS SOFTWARE.
*/ */
/* $Id: rrsig_46.c,v 1.12 2009/12/04 22:06:37 tbox Exp $ */ /* $Id: rrsig_46.c,v 1.13 2011/01/13 00:55:49 marka Exp $ */
/* Reviewed: Fri Mar 17 09:05:02 PST 2000 by gson */ /* Reviewed: Fri Mar 17 09:05:02 PST 2000 by gson */
@@ -134,8 +134,6 @@ totext_rrsig(ARGS_TOTEXT) {
unsigned long exp; unsigned long exp;
unsigned long foot; unsigned long foot;
dns_name_t name; dns_name_t name;
dns_name_t prefix;
isc_boolean_t sub;
REQUIRE(rdata->type == 46); REQUIRE(rdata->type == 46);
REQUIRE(rdata->length != 0); REQUIRE(rdata->length != 0);
@@ -217,11 +215,9 @@ totext_rrsig(ARGS_TOTEXT) {
* Signer. * Signer.
*/ */
dns_name_init(&name, NULL); dns_name_init(&name, NULL);
dns_name_init(&prefix, NULL);
dns_name_fromregion(&name, &sr); dns_name_fromregion(&name, &sr);
isc_region_consume(&sr, name_length(&name)); isc_region_consume(&sr, name_length(&name));
sub = name_prefix(&name, tctx->origin, &prefix); RETERR(dns_name_totext(&name, ISC_FALSE, target));
RETERR(dns_name_totext(&prefix, sub, target));
/* /*
* Sig. * Sig.