]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[v9_8] check for physical equivalence in names
authorEvan Hunt <each@isc.org>
Wed, 19 Jun 2013 01:15:30 +0000 (18:15 -0700)
committerEvan Hunt <each@isc.org>
Wed, 19 Jun 2013 01:15:30 +0000 (18:15 -0700)
3599. [tuning] Check for pointer equivalence in name comparisons.
[RT #18125]
(cherry picked from commit 7c2f5481416e00004df99b250737ada8c39b9b1d)

CHANGES
lib/dns/name.c

diff --git a/CHANGES b/CHANGES
index 945f5b9c5c886e3bc12e6f2fbb21c32641bc3cb4..bdf9211a9ed4627fcbb102230bbe66f223cc2fde 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+3599.  [tuning]        Check for pointer equivalence in name comparisons.
+                       [RT #18125]
+
 3594.  [maint]         Update config.guess and config.sub. [RT #33816]
 
 3592.  [doc]           Moved documentation of rndc command options to the
index 7fb21e138c3c8c99631d019991855be4760ac25f..9a6c64afd68a36483a44ba78b3cc61c549eaee25 100644 (file)
@@ -578,6 +578,11 @@ dns_name_fullcompare(const dns_name_t *name1, const dns_name_t *name2,
        REQUIRE((name1->attributes & DNS_NAMEATTR_ABSOLUTE) ==
                (name2->attributes & DNS_NAMEATTR_ABSOLUTE));
 
+       if (name1 == name2) {
+               *orderp = 0;
+               return (dns_namereln_equal);
+       }
+
        SETUP_OFFSETS(name1, offsets1, odata1);
        SETUP_OFFSETS(name2, offsets2, odata2);
 
@@ -691,6 +696,9 @@ dns_name_equal(const dns_name_t *name1, const dns_name_t *name2) {
        REQUIRE((name1->attributes & DNS_NAMEATTR_ABSOLUTE) ==
                (name2->attributes & DNS_NAMEATTR_ABSOLUTE));
 
+       if (name1 == name2)
+               return (ISC_TRUE);
+
        if (name1->length != name2->length)
                return (ISC_FALSE);