Handle large query IDs in xfer/ans5 properly

Previously, the server would crash if it received a query with an ID
close to 65535 in the badmessageid case, as adding 50 to it would not
fit in uint16.

This was an oversight in porting it from Perl to Python in
f9ed3650ac.
This commit is contained in:
Štěpán Balážik 2026-05-26 14:57:47 +02:00
parent ebb4e5e5b7
commit e0ef63532f

View file

@ -154,7 +154,7 @@ class Add50ToMessageIdFromSecondResponse(ResponseHandlerWrapper):
assert isinstance(
response_action, DnsResponseSend
), "Add50ToMessageIdFromSecondResponse can only wrap handlers that yield DnsResponseSend from the second response onward"
response_action.response.id += 50
response_action.response.id = (response_action.response.id + 50) % 65536
else:
self._first_yielded = True