dissect.target icon indicating copy to clipboard operation
dissect.target copied to clipboard

Broken journal file crashes target-info

Open lhaagsma opened this issue 5 months ago • 0 comments

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:

  1. improve journal parsing
  2. 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

lhaagsma avatar Jul 16 '25 12:07 lhaagsma