From fe47c7b430c12efa42040afd0a155e13fbe961a3 Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Fri, 10 Dec 2010 14:15:56 -0800 Subject: [PATCH] disallow metaqueries in dns.resolver.query() --- ChangeLog | 2 ++ dns/resolver.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index cfbd23b..6a07424 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2010-12-10 Bob Halley + * dns/resolver.py (Resolver.query): disallow metaqueries. + * dns/rdata.py (Rdata.__hash__): Added a __hash__ method for rdata. 2010-11-23 Bob Halley diff --git a/dns/resolver.py b/dns/resolver.py index f803eb6..30977f3 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -61,6 +61,10 @@ class NoRootSOA(dns.exception.DNSException): This should never happen!""" pass +class NoMetaqueries(dns.exception.DNSException): + """Metaqueries are not allowed.""" + pass + class Answer(object): """DNS stub resolver answer @@ -571,8 +575,12 @@ class Resolver(object): qname = dns.name.from_text(qname, None) if isinstance(rdtype, (str, unicode)): rdtype = dns.rdatatype.from_text(rdtype) + if dns.rdatatype.is_metatype(rdtype): + raise NoMetaqueries if isinstance(rdclass, (str, unicode)): rdclass = dns.rdataclass.from_text(rdclass) + if dns.rdataclass.is_metaclass(rdclass): + raise NoMetaqueries qnames_to_try = [] if qname.is_absolute(): qnames_to_try.append(qname) -- 2.34.1