BIND 10 #1771: database datasource incorrectly rejects "on zonecut" glue

BIND 10 Development do-not-reply at isc.org
Sat Jun 16 01:23:20 UTC 2012


#1771: database datasource incorrectly rejects "on zonecut" glue
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:  jinmei
  jinmei                             |                Status:  reviewing
                       Type:         |             Milestone:
  defect                             |  Sprint-20120619
                   Priority:         |            Resolution:
  medium                             |             Sensitive:  0
                  Component:  data   |           Sub-Project:  DNS
  source                             |  Estimated Difficulty:  3
                   Keywords:         |           Total Hours:  0
            Defect Severity:  N/A    |
Feature Depending on Ticket:         |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by jinmei):

 * owner:  muks => jinmei


Comment:

 Okay, on looking into it more closely, I've come up with a specific
 suggestion, implemented it in trac1771-2, and pushed it.

 My suggestion is to make it getRRsets() more dumb: it basically just
 sees whether the specified type of RR exists in the given context and
 returns it; it doesn't have to care about whether an NS and other
 type of RR coexist.

 Of course, we need to make sure that nothing on or under zone cut
 (except for the delegation information) would accidentally leak to the
 caller unless GLUE_OK is specified, but the existing code actually
 already ensures that.

 So, by making getRRsets() more dumb, the only question is whether we
 still want to catch such case explicitly and throw an exception.  This
 may be debatable, but in my personal opinion we don't have to do
 that.  Although it's a bit strange configuration and useless in
 practice (because it's hidden), it does not necessarily cause harmful
 result like ambiguity due to multiple CNAMEs.

 The initial commit ef571c2 implements this policy.  I think it's quite
 simple and straightforward.  Although we need to adjust an existing
 test case, the affected part is limited.  And, without changing any
 other part of the main implementation, the previously failing tests
 now pass.

 The rest of the branch is just for cleanup and documentation update
 (which will clarify the related issue a bit more).  But even including
 these, the entire branch should be pretty concise.

 So, in conclusion, my suggestion is to use this version of the change
 instead of current trac1771.  If we can agree that it's okay to not
 throw on seeing "NS+other", I believe this implementation is much
 simpler and easier to understand and maintain.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1771#comment:22>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list