dissect.target
dissect.target copied to clipboard
Broken journal file crashes target-info
While running target info against a debian/ubuntu target it encounters a ~~seemingly~~ broken journal file. This exception is unhandled and stops the execution of target-info entirely. So these are two bugs:
- improve journal parsing
- harden target-info so that it does not completely exit when encountering an error
trace obtained using -vv:
Traceback (most recent call last):
File "/dissect.target/dissect/target/tools/info.py", line 83, in main
target_info = get_target_info(target, args)
File "/dissect.target/dissect/target/tools/info.py", line 113, in get_target_info
"ips": target.ips,
File "/dissect.target/dissect/target/target.py", line 138, in __getattr__
result = func.__get__(p)
File "/dissect.target/dissect/target/helpers/cache.py", line 238, in cache_wrapper
return cache.call(\*args, \*\*kwargs)
File "/dissect.target/dissect/target/helpers/cache.py", line 117, in call
func_cache[key] = self.func(\*args, \*\*kwargs)
File "/dissect.target/dissect/target/plugins/os/unix/linux/_os.py", line 81, in ips
elif dhcp_log_ips := parse_unix_dhcp_log_messages(self.target, iter_all=False):
File "/dissect.target/dissect/target/plugins/os/unix/linux/network_managers.py", line 535, in parse_unix_dhcp_log_messages
for count, record in enumerate(messages):
File "/dissect.target/dissect/target/plugins/os/unix/log/journal.py", line 443, in journal
for entry in journal:
File "/dissect.target/dissect/target/plugins/os/unix/log/journal.py", line 322, in __iter__
object_type = self.fh.read(1)[0]
IndexError: index out of range