The data and field hash table chains have the same problem the previous commit fixed for entry array chains. New data and field objects are linked at the tail of their hash bucket by patching the previous tail object's next_hash_offset in place, so after a crash a persisted predecessor (or the bucket head) can point at an object whose body never reached disk. journal_file_find_data_object_with_hash() and journal_file_find_field_object_with_hash() walk those chains while resolving matches, and on -EADDRNOTAVAIL/-EBADMSG from journal_file_move_to_object() they simply return the error directly. That propagates up to real_journal_next(), which discards the whole file from the query. Give those two lookups the same tolerance: on a read-only file, treat an unreadable chain node as the end of the bucket chain.
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS, and also repositories with packages built from the latest stable release
