Skip to content

Catch dns.message.TrailingJunk #28

@sijanec

Description

@sijanec

It would be useful to catch this exception and consider it a nameserver error, just like in the case of SERVFAIL.

n3map 0.8.2: starting mapping of si.
checking SOA...
checking DNSKEY...
starting NSEC3 enumeration...
;; mapping si. .................................................................... ;;
;; records =   0; queries =   3; hashes =   0; ... q/s = 29; coverage =   0.000000% ;;
Traceback (most recent call last):
  File "/home/z/.local/bin/n3map", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/z/.local/lib/python3.12/site-packages/n3map/map.py", line 664, in main
    sys.exit(n3map_main(sys.argv))
             ^^^^^^^^^^^^^^^^^^^^
  File "/home/z/.local/lib/python3.12/site-packages/n3map/map.py", line 253, in n3map_main
    walker.walk()
  File "/home/z/.local/lib/python3.12/site-packages/n3map/nsec3walker.py", line 159, in walk
    self._map_zone()
  File "/home/z/.local/lib/python3.12/site-packages/n3map/nsec3walker.py", line 138, in _map_zone
    res, ns = self.queryprovider.query(query_dn, rrtype='A')
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/z/.local/lib/python3.12/site-packages/n3map/queryprovider.py", line 122, in query
    res = self._sendquery(query_dn, ns, rrtype)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/z/.local/lib/python3.12/site-packages/n3map/queryprovider.py", line 113, in _sendquery
    return query.query(query_dn, ns, rrtype, self.timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/z/.local/lib/python3.12/site-packages/n3map/query.py", line 158, in query
    res = dnspython_query(dname, ns.ip_str(), ns.port, rrtype, timeout)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/z/.local/lib/python3.12/site-packages/n3map/query.py", line 148, in dnspython_query
    r = dns.query.udp(q, ns_ip, port=ns_port, timeout=timeout,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/dns/query.py", line 735, in udp
    (r, received_time) = receive_udp(
                         ^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/dns/query.py", line 633, in receive_udp
    r = dns.message.from_wire(
        ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/dns/message.py", line 1367, in from_wire
    m = reader.read()
        ^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/dns/message.py", line 1266, in read
    raise TrailingJunk
dns.message.TrailingJunk: The DNS packet passed to from_wire() has extra junk at the end of it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions