Commit Graph
45520 Commits
Author SHA1 Message Date
Max Kellermann 8a87a16bbb test/test-execute: skip PrivateNetwork tests if kernel has no dummy netdevice support 2023-10-02 15:32:04 +02:00
Max Kellermann ec757e920c test/test-chown-rec: skip ACL tests if kernel has no ACL support
The second half of `chown_recursive` works only if the kernel has ACL support.
2023-10-02 15:32:04 +02:00
Luca Boccassi ddba5a1ad6 mount-util: use new mount API for image mount tunnel 2023-10-02 14:30:23 +01:00
Luca Boccassi 858a0dfce6 docs: add document about UEFI security posture in src/boot/efi/
This is not intended as a user guide, but to describe the generic security
posture of the UEFI components. Hence we do not publish it on systemd.io
but only in the repository.
2023-10-02 14:29:10 +01:00
Luca Boccassi e428f1dd8a Merge pull request #29400 from yuwata/network-limit-read-size
network: limit read size
2023-10-02 14:23:51 +01:00
Yu Watanabe 7233c679d4 fuzz: limit size for fuzz-manager-serialize
Fixes #29357 and oss-fuzz#62756
(https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62756).
2023-10-02 14:23:34 +01:00
Luca Boccassi 3e1072726b dissect-image: support verity_dissect_and_mount() in two steps too
With the new mount API first the image is opened, and later mounted
2023-10-02 14:02:32 +01:00
Lennart Poettering 8d9a1d5979 dissect-image: optionally allow mounting via new kernel mount API in two steps
This adds support for the new fsmount() logic of the kernel: we'll first
create an unattached fsmount fd, and then in a second step attach this
to some real file system inode – as opposed to attaching file system
directly. The benefit of this is that we can pass the open fsmount fds
over some sockets if need be, to isolate the mounting code from the
attaching code.
2023-10-02 14:02:32 +01:00
Lennart Poettering 44cc82bfbf mount-util: add make_fsmount() 2023-10-02 14:02:32 +01:00
Luca Boccassi a7e0199ece mount-util: use new mount API for bind mount tunnel
If we have the new mount API we can simplify bind mounting into a namespace
a lot
2023-10-02 14:02:32 +01:00
Luca Boccassi f273c09c51 mountpoint-util: add bool mount_new_api_supported() helper 2023-10-02 14:02:32 +01:00
Lennart Poettering 5a71b83002 util: add xmalloc0() helper 2023-10-02 15:02:26 +02:00
Lennart Poettering 4ac79c2b77 memory-util: move memzero() to src/fundamental/ to share with UEFI
(and while we are at it, make sure it returns the input pointer as
output)
2023-10-02 15:00:13 +02:00
Daan De Meyer 1e5e902f60 Merge pull request #29343 from DaanDeMeyer/tmp
Use a subdirectory of /run/systemd for PrivateDevices=
2023-10-02 14:29:32 +02:00
Daan De Meyer cd7f3702eb core: Use a subdirectory of /run/ for PrivateDevices=
When we're starting early boot services such as systemd-userdbd.service,
/tmp might not yet be mounted, so let's use a directory in /run instead
which is guaranteed to be available.
2023-10-02 12:23:13 +02:00
Daan De Meyer ce427d0e73 mount: Log when we can't create the mount point
Debugging mount unit failures caused by systemd not being able to
create the mount point is currently rather hard. Let's log about
failures to create mount points to simplify debugging.
2023-10-02 11:24:03 +09:00
Yu Watanabe 185e201690 journalctl: find boot ID more gracefully in corrupted journal
In discover_next_boot(), first we find a new boot ID based on the value
stored in the entry object. Then, find the tail (or head when we are going
upwards) entry of the boot based on the _BOOT_ID= field data.

If boot IDs of an entry in the entry object and _BOOT_ID field data
are inconsistent, which may happen on corrupted journal, then previously
discover_next_boot() failed with -ENODATA.

This makes the function check if the two boot IDs in each entry are
consistent, and skip the entry if not.

Fixes the failure of `journalctl -b -1` for 'truncated' journal:
https://github.com/systemd/systemd/pull/29334#issuecomment-1736567951
2023-10-02 10:59:33 +09:00
Yu Watanabe d287ece7f1 test: split test-tables into three
Let's drop dependency to libjournal_core and libudevd_core from
test-tables.
2023-10-02 10:52:45 +09:00
Yu Watanabe 1d3ef11dfe journal: move several tests to libsystemd/sd-journal
This also renames test-journal-xyz for journald (rather than sd-journal)
to test-journald-xyz.
2023-10-02 10:52:45 +09:00
Yu Watanabe f7b349e88d journal-remote: drop dependencies to journald
Now journal-remote can be built without libjournal_core.
2023-10-02 10:52:45 +09:00
Yu Watanabe 1e09470303 journald: move and rename journal/managed-journal-file.[ch] -> shared/journal-file-util.[ch]
The files are used by both journald and journal-remote.
Let's move them to src/shared.
2023-10-02 10:52:45 +09:00
Yu Watanabe 45c0ecba2d journald: drop ManagedJournalFile
The ManagedJournalFile object is a trivial wrapper of JournalFile.
Let's drop it, and also drop 'managed_' prefix from the functions.
2023-10-02 10:52:45 +09:00
Yu Watanabe 5f6b79b73b journald: split-out closing journal files from managed_journal_file_open()
No functional change, just refactoring and preparation for later
commits.
2023-10-02 10:52:45 +09:00
Yu Watanabe 34d17ac128 journald: do not close all files stored in Server.deferred_closes
Just before the call of managed_journal_file_open(), we already called
server_vacuum_deferred_closes(), so there is a room to store the file.
2023-10-02 10:52:45 +09:00
Yu Watanabe 4ed95fafad network: set maximum length to be read by read_full_file_full()
Fixes #29264 and oss-fuzz#62556
(https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=62556).
2023-10-02 10:36:43 +09:00
Yu Watanabe 7e2a5fbd85 fileio: make read_full_file_full() usable with size and READ_FULL_FILE_UNBASE64
When READ_FULL_FILE_UNBASE64 (or READ_FULL_FILE_UNHEX) is specified,
setting size argument by caller is difficult, as it is hard to estimate
the encoded length.

This makes when size is specified with decoding option, let's read file
more, and check decoded size later with the specified size.
2023-10-02 10:36:43 +09:00
Jan Janssen a8b53f4f15 meson: Pass all -static-pie args to linker
Fixes: #29381
2023-10-01 11:49:51 +01:00
Luca Boccassi cf8c641733 Merge pull request #29384 from yuwata/sd-journal-cleanups-for-generic-array-get
sd-journal: cleanups for generic_array_get()
2023-10-01 11:28:32 +01:00
Yu Watanabe b05a88c1ae meson: drop unused home_includes 2023-10-01 10:28:55 +02:00
Yu Watanabe 52afaee74b sd-netlink: make the default timeout configurable by environment variable
On normal systems, triggering a timeout should be a bug in code or
configuration error, so I do not think we should extend the default
timeout. Also, we should not introduce a 'first class' configuration
option about that. But, making it configurable may be useful for cases
such that "an extremely highly utilized system (lots of OOM kills,
very high CPU utilization, etc)".

Closes #25441.
2023-10-01 12:41:10 +09:00
Yu Watanabe f5c615889a sd-netlink: make calc_elapse() return USEC_INFINITY when no timeout is requested
Then, timout_compare() becomes simplar, the timeout value becomes
consistent with what sd_netlink_get_timeout() provides.

This also drop unnecessary assignment of reply_callback.timeout after
the slot is dropped from the prioq.
2023-10-01 12:41:10 +09:00
Yu Watanabe 8fc4d1be77 mmap-cache: rebreak lines 2023-10-01 06:35:02 +09:00
Yu Watanabe b38977e5d3 mmap-cache: modernize free functions
No functional change, just refactoring.
2023-10-01 06:35:02 +09:00
Yu Watanabe 8ff0f36e00 mmap-cache: check if mmap protection mode is consistent when fd is already managed
Otherwise, MMapFileDescriptor with an unexpected protection mode may be
returned.
2023-10-01 06:35:02 +09:00
Yu Watanabe 8926a6a467 mmap-cache: modernize mmap_cache_add_fd()
- use hashmap_ensure_put(),
- use _cleanup_free_ attribute,
- use structured initializer.
2023-10-01 06:35:02 +09:00
Yu Watanabe 397caa8122 mmap-cache: use structured initializer 2023-10-01 06:35:02 +09:00
Yu Watanabe d37eeabc4f sd-journal: merge journal_file_next_entry_for_data() with generic_array_get_plus_one()
Because journal_file_next_entry_for_data() provides the first entry, while
journal_file_next_entry() actually provides the next entry of the input,
this also renames it to journal_file_move_to_entry_for_data().

Also, previously, on DIRECTION_UP the function did not fall back to the
'extra' entry when all entries linked in the chained array are broken.
This also fixes the issue, and now it fall back to the extra entry.
2023-09-30 20:10:15 +09:00
Yu Watanabe 3a23e41883 sd-journal: add/update comments 2023-09-30 20:10:15 +09:00
Yu Watanabe f85e79d3e5 sd-journal: add missing 'error' handling
When we reach an empty array, there are at least two possibilities:
- journal file is corrupted,
- invalid index is requested.

We cannot distinguish them here, let's simply return earlier.
2023-09-30 20:10:15 +09:00
Yu Watanabe fe6f2bd8a6 sd-journal: fix calculation of number of 'total' entries in the chained arrays
If there's corruption and we are going upwards, then the 'total'
must be decreased when we go to the previous array. However,
previously, we wrongly kept or increased the number. This fixes
the behavior.
2023-09-30 20:10:15 +09:00
Yu Watanabe b63f09e4ee sd-journal: merge two bump_entry_array() calls
No functional changes, just refactoring.
2023-09-30 20:10:15 +09:00
Yu Watanabe b7264911aa sd-journal: make bump_entry_array() return positive when a valid offset found
When it returns 0 offset, then the subsequent
journal_file_move_to_object() will fail. Let's return
generic_array_get() earlier in such situation.
2023-09-30 20:10:15 +09:00
Yu Watanabe eb6ba87344 sd-journal: drop redundant re-read of entry array object
This effectively reverts d9b61db922.

In the do-while loop, we do not read any other entry array object, hence
the current object is always in the mmap cache and not necessary to re-read it.
2023-09-30 20:10:15 +09:00
Lennart Poettering cb88da8254 logind: add HANDLE_ACTION_IS_SLEEP() and HANDLE_ACTION_IS_SHUTDOWN() helpers
Let's group this HandleAction types in nice little helpers.

Prompted by #28579
2023-09-30 10:56:28 +01:00
Luca Boccassi 69f99d1e4e Merge pull request #29363 from medhefgo/elf2efi
elf2efi: Rework to allow using any linker
2023-09-29 23:01:53 +01:00
Lennart Poettering 68849251a2 Merge pull request #29344 from poettering/tpm2-setup
tpm2-setup: set up TPM2 Storage Root Key (SRK) in a separate service
2023-09-29 21:56:28 +02:00
Lennart Poettering 81df5cd185 sysext: validate against the right API level
Let's ake sure we check confexts against the confext api level, and
sysext against the sysext api level.

Previously the test would simply be skipped for confexts...
2023-09-29 21:54:46 +02:00
Lennart Poettering ef2dbc9c40 pe-binary: actually check if PE binary is UEFI binary when determining if UKI
If it's not a UEFI binary, then it's not a UKI.
2023-09-29 21:54:16 +02:00
Lennart Poettering 2e64cb71b9 tpm2-setup: add new early boot tool for initializing the SRK
This adds an explicit service for initializing the TPM2 SRK. This is
implicitly also done by systemd-cryptsetup, hence strictly speaking
redundant, but doing this early has the benefit that we can parallelize
this in a nicer way. This also write a copy of the SRK public key in PEM
format to /run/ + /var/lib/, thus pinning the disk image to the TPM.
Making the SRK public key is also useful for allowing easy offline
encryption for a specific TPM.

Sooner or later we should probably grow what this service does, the
above is just the first step. For example, the service should probably
offer the ability to reset the TPM (clear the owner hierarchy?) on a
factory reset, if such a policy is needed. And we might want to install
some default AK (?).

Fixes: #27986
Also see: #22637
2023-09-29 19:36:04 +02:00
Jan Janssen 823bf39a49 elf2efi: Add GNU_RELRO support 2023-09-29 17:05:11 +02:00