From d7f2306161981ec4c1272c71bccad0aca48e5332 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 3 Jun 2008 12:32:08 +0000 Subject: [PATCH] fixup localzone nodefault issue, the trailing dot was used in comparisons. git-svn-id: file:///svn/unbound/trunk@1106 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 4 +++ services/localzone.c | 54 +++++++++++++++++++--------------- testdata/local_nodefault.tpkg | Bin 0 -> 1935 bytes 3 files changed, 34 insertions(+), 24 deletions(-) create mode 100644 testdata/local_nodefault.tpkg diff --git a/doc/Changelog b/doc/Changelog index 1b7f8021f..c0c2101ab 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +3 June 2008: Wouter + - fixup local-zone: "30.172.in-addr.arpa." nodefault, so that the + trailing dot is not used during comparison. + 2 June 2008: Wouter - Jelte fixed bugs in my absence - bug 178: fixed unportable shell usage in configure (relied on diff --git a/services/localzone.c b/services/localzone.c index 7e5d05005..11d4e6d6b 100644 --- a/services/localzone.c +++ b/services/localzone.c @@ -528,9 +528,15 @@ static int lz_nodefault(struct config_file* cfg, const char* name) { struct config_strlist* p; + size_t len = strlen(name); + if(len == 0) return 0; + if(name[len-1] == '.') len--; + for(p = cfg->local_zones_nodefault; p; p = p->next) { - /* compare zone name, lowercase */ - if(strcasecmp(p->str, name) == 0) + /* compare zone name, lowercase, compare without ending . */ + if(strncasecmp(p->str, name, len) == 0 && + (strlen(p->str) == len || (strlen(p->str)==len+1 && + p->str[len] == '.'))) return 1; } return 0; @@ -614,28 +620,28 @@ lz_enter_defaults(struct local_zones* zones, struct config_file* cfg, return 0; } } - if ( !add_as112_default(zones, cfg, buf, "10.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "16.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "17.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "18.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "19.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "20.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "21.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "22.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "23.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "24.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "25.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "26.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "27.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "28.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "29.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "30.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "31.172.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "168.192.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "0.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "254.169.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "2.0.192.in-addr.arpa") || - !add_as112_default(zones, cfg, buf, "255.255.255.255.in-addr.arpa") || + if ( !add_as112_default(zones, cfg, buf, "10.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "16.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "17.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "18.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "19.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "20.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "21.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "22.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "23.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "24.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "25.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "26.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "27.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "28.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "29.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "30.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "31.172.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "168.192.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "0.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "254.169.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "2.0.192.in-addr.arpa.") || + !add_as112_default(zones, cfg, buf, "255.255.255.255.in-addr.arpa.") || !add_as112_default(zones, cfg, buf, "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.") || !add_as112_default(zones, cfg, buf, "d.f.ip6.arpa.") || !add_as112_default(zones, cfg, buf, "8.e.f.ip6.arpa.") || diff --git a/testdata/local_nodefault.tpkg b/testdata/local_nodefault.tpkg new file mode 100644 index 0000000000000000000000000000000000000000..7cbef36a8d30ce65a723c6bf52848ba268a8bc23 GIT binary patch literal 1935 zc-jGv2XOcwiwFR$I7LVR1MOLTbJ|7|_rKhy*vL$rOp1`ii(3*iCN^o@Cg5V+wA1Gq zDx?Ec%Q~WyOzF#a@7@W4utiMkgihQ0B}UTS?e5*)?%uBCGspG^0dwidj{Qh?y|BFZ zkzpVX4{OP_UR}E`uxFZvWm=W0RmE{;wQAM(p!TsRl82Z_b_lRHV{t^o&ExLt|A)fQ z+5bCj+*QM+ za*qWKFm;2RQtpJ_G?EP`A+;k4Ht;AO!Y?eK5HSep)VCecyx@>J1KAn_>@HlQC< z_$m$nDqvO{#^(*gfRpw`A1uT8oV>NYAi_TyHoy&ac&DG}ExdR?1!LO|T~1Dr%b11p z29OhWJw*XQ)F3Cdc+y8x%* z4LTYr;O~%eFG8oXNMRp>__`EL&~1einWQjfAv(kHdAHX;CWV;O5}$LQjT;a!Qb4nz zP9$AY({Qloj?g{uAr6Kt4qP2uu-%!2j77;9WDy23@`xvwl>!!(-p4eYm!ttsq+<%^ z`w)fbTwX8+ofKqeNkkQ-tQfj^Xz5;1vR#Z7b~v?l4OT%+EQD<)x4yVTo~0%u7S1r@ zB*RHzFWAppDxMktY^xRiq!g`}o+s2ljNc6{9LN?mFj zgygJD+sMwmmtEdUw_^9t3TFy`65GUoapDF1ugkbE|Ers|_59z$2NnN!g6ALtL~;s% z*k}-en-sgfvoFs&kQZM`vEP3KmAYXN((d$o-w$54aV&Y;>Yuy@Hg(W&;C(co;;&#% zdhPQ!-@`XOXtkizZTEWJ9%-F^b%_a|!>03r=aP%|N&l?dfp0D`4a6IQNoN7&7h21% zR_EefySL~lvlk=1m6bFuY^&Gr~{Y|?=qOA!`Ej3r%g|vG%l1Ah?bfdJaVQc&r zl`04SZP+URV?26@jC<=ptA0EGtJc-~|D9k%{>MZB-(d!rk&>o-ACj?k>L*s*m33gzKE_k19_V!ENOBg-sP?LWKJ)6>Myx0qUK_B=A6&rmFd01PaZ|a z4ukBr?|&X5;~xLFs;0Sm|6|DSf7M!5`Ts7E@Bc{x_b;jdvuQnwizXfik#6z{i+vX+ z_6>#3cUTs-&N?uRJwNgS3?4})*~Ij5EIxzk6*K2^0};K)%WoF4h|1P28!6#8Tpgyo zaU|=XRG3Ii7dbuGWKED}fbt=epsh$I)VTsX;4>O(qApBQ?sP?3DkDu_6T0r#Qpq+9 zaq?GKeGTW!Z@1#>fkvp$X*#-t>2vpMOr4W-SyYWVnjCvKVnrc{KchjqGirB9{EeYDaD)i@fV=LON~6PJtJ(QVR2$!c{?8>#B^ z-cD|(`aH@Vs^0pzs^9sMtDvBuprD|jprD|jprD|jprD|jprD|jprD|jprD|jprD|j VprD|jprG)V@du;U-D3by008zC(Xapj literal 0 Hc-jL100001 -- 2.47.2