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

CHANGES
lib/dns/name.c

diff --git a/CHANGES b/CHANGES
index 763633b90cbf975ba3dc174d12bce1907aca5bd7..b81cf242e20b51ff4ad4e880503e1514ad74ac6c 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 1ebda616af639e1022685000048ce04f71fa1151..b0dd8fe323eefe848a859e0f1f517bd08de74158 100644 (file)
@@ -577,6 +577,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);
 
@@ -690,6 +695,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);