From 6875c01cf2119ed06e1758a072ad656cffcd4f52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20De=20Keersmaeker?= <francois.dekeersmaeker@uclouvain.be> Date: Fri, 12 May 2023 11:27:49 +0200 Subject: [PATCH] DNS fix: do not modify last dot character --- src/packet/DNS.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/packet/DNS.py b/src/packet/DNS.py index ce8fb30..52ebe42 100644 --- a/src/packet/DNS.py +++ b/src/packet/DNS.py @@ -76,10 +76,13 @@ class DNS(Packet): # Field is query name elif field == "qname" and question_record is not None: old_value = question_record.getfieldval("qname") + suffix = old_value[-1] + old_value_trimmed = old_value[:-1] # Randomly change one character in query name - new_value = old_value - while new_value == old_value: - new_value = Packet.bytes_edit_char(old_value) + new_value_trimmed = old_value_trimmed + while new_value_trimmed == old_value_trimmed: + new_value_trimmed = Packet.bytes_edit_char(old_value_trimmed) + new_value = new_value_trimmed + bytes(chr(suffix), "utf-8") question_record.setfieldval("qname", new_value) # Update checksums -- GitLab