From db29acda6507a4b9609782a6433a3c5b2a7d7b5f Mon Sep 17 00:00:00 2001 From: Ankit Pati Date: Fri, 16 Feb 2018 10:17:22 +0530 Subject: [PATCH] FIX: Remove Hardcoded Offset in Compression An offset of 7 was hardcoded in the function compress_file, presumably to skip over the default target IP address of 0.0.0.0 in a hosts file. However, this causes problems when the default is overridden using the --ip or -i flag, causing visibly garbled output in the generated hosts file. Fix is to calculate the length of target IP at runtime. --- updateHostsFile.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/updateHostsFile.py b/updateHostsFile.py index 81a6ef2ef..0c5404e02 100644 --- a/updateHostsFile.py +++ b/updateHostsFile.py @@ -667,6 +667,7 @@ def compress_file(input_file, target_ip, output_file): input_file.seek(0) # reset file pointer write_data(output_file, '\n') + target_ip_len = len(target_ip) lines = [target_ip] lines_index = 0 for line in input_file.readlines(): @@ -674,7 +675,8 @@ def compress_file(input_file, target_ip, output_file): if line.startswith(target_ip): if lines[lines_index].count(' ') < 9: - lines[lines_index] += ' ' + line[7:line.find('#')].strip() + lines[lines_index] += ' ' \ + + line[target_ip_len:line.find('#')].strip() else: lines[lines_index] += '\n' lines.append(line[:line.find('#')].strip())