From: Michał Kępień Date: Fri, 11 Apr 2025 14:14:57 +0000 (-0500) Subject: Gracefully handle invalid queries X-Git-Tag: v9.21.8~30^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fd0290c9192da1942628c0b556d8faecac3958b1;p=thirdparty%2Fbind9.git Gracefully handle invalid queries Prevent custom servers based on asyncserver.py from exiting prematurely due to unhandled exceptions raised as a result of attempting to parse invalid queries sent by clients. --- diff --git a/bin/tests/system/isctest/asyncserver.py b/bin/tests/system/isctest/asyncserver.py index 33ca5ad6911..fb5f2c21c34 100644 --- a/bin/tests/system/isctest/asyncserver.py +++ b/bin/tests/system/isctest/asyncserver.py @@ -728,7 +728,11 @@ class AsyncDnsServer(AsyncServer): """ Yield wire data to send as a response over the established transport. """ - query = dns.message.from_wire(wire) + try: + query = dns.message.from_wire(wire) + except dns.exception.DNSException as exc: + logging.error("Invalid query from %s (%s): %s", peer, wire.hex(), exc) + return response_stub = dns.message.make_response(query) qctx = QueryContext(query, response_stub, peer, protocol) self._log_query(qctx, peer, protocol)