Commit Graph

67647 Commits

Author SHA1 Message Date
Yu Watanabe
31438511e0 sd-journal: drop unnecessary re-read of object
This reverts the following commits.
- a1640191b4
- 231741d355

These were done by my misunderstanding of the mmap cache behavior.

Also, this updates the comments added by
df04b9ed86.
2023-10-03 22:17:34 +01:00
Luca Boccassi
fdae874cfe
Merge pull request #29426 from ddstreet/tpm2_minor_changes
Minor commits for tpm2
2023-10-03 22:16:57 +01:00
Luca Boccassi
c4e0f0f301
Merge pull request #29428 from mrc0mmand/soft-reboot
test: spawn the to-be-killed-on-soft-reboot units with --collect
2023-10-03 22:13:32 +01:00
NRK
be1666886b macro: use __builtin_unreachable on NDEBUG
note that this slightly changes the semantic of assert when NDEBUG is
defined. if there's an extern function call (without attribute pure or
similar) then the compiler has to assume it has side effects and still
emit the function call.

whereas the old assert guaranteed that nothing will be evaluated on
NDEBUG.

Closes: https://github.com/systemd/systemd/issues/29408
2023-10-03 21:34:38 +02:00
Dan Streetman
639dca030b tpm2: cache TPM's supported ECC curves
This brings the tpm2_supports_ecc_curve() api in line with the other
tpm2_supports_*() functions, of returning a boolean.
2023-10-03 12:56:55 -04:00
Dan Streetman
db7fdf152b tpm2: change tpm2_unseal() to accept Tpm2Context instead of device string
This matches the change to tpm2_seal(), which now accepts a Tpm2Context instead
of a device string.

This also allows using the same TPM context for sealing and unsealing, which
will be required by (future) test code when sealing/unsealing using a transient
key.
2023-10-03 12:56:55 -04:00
Dan Streetman
7014006906 tpm2: use GREEDY_REALLOC_APPEND() in tpm2_get_capability_handles(), cap max value
Simplify the function with GREEDY_REALLOC_APPEND(). Also limit the size_t-sized
max value to UINT32_MAX since that's the maximum of the range this searches,
and the max parameter for tpm2_get_capability() is uint32_t.
2023-10-03 12:56:55 -04:00
Dan Streetman
171d5b69c0 tpm2: update tpm2 test for supported commands
The test expects TPM2_CC_FIRST - 1 and TPM2_CC_LAST + 1 to be unsupported, but
those are not necessarily invalid commands. Instead test known-invalid
commands. Also add some more valid commands.
2023-10-03 12:56:55 -04:00
Dan Streetman
73592a7cca tpm2: allow tpm2_make_encryption_session() without bind key
Allow providing no bind key, and use ESYS_TR_NONE instead.
2023-10-03 12:56:55 -04:00
Zbigniew Jędrzejewski-Szmek
db5d86f5b9 test-loopback: suppress warning about ignored unused result 2023-10-03 17:19:07 +01:00
Dan Streetman
f9a0ee7554 tpm2: downgrade most log functions from error to debug
Because most TPM2 functions here are 'library-like' functions, they should be
at debug level, not error level.

The only functions not reduced to logging at debug are tpm2_list_devices(),
since it is expected to print output, and the tpm2_parse_pcr_argument_*()
functions, since the system-wide parse_*_argument() functions generally log at
error level.
2023-10-03 17:13:50 +01:00
Frantisek Sumsal
2f397514ad test: spawn the to-be-killed-on-soft-reboot units with --collect
Otherwise they might leave stuff behind if they don't respond fast
enough to the first SIGTERM and get SIGKILLEd, which then breaks reusing
the unit name further in the test:

[ 2993.620849] H testsuite-82.sh[43]: + systemd-run -p Type=exec -p DefaultDependencies=no -p IgnoreOnIsolate=yes --unit=testsuite-82-nosurvive.service sleep infinity
[ 2993.628686] H systemd[1]: testsuite-82-nosurvive.service: About to execute: /usr/bin/sleep infinity
[ 2993.628886] H systemd[1]: testsuite-82-nosurvive.service: Forked /usr/bin/sleep as 65
[ 2993.629328] H systemd[1]: testsuite-82-nosurvive.service: Changed dead -> start
...
[ 2993.699892] H testsuite-82.sh[43]: + systemctl --no-block --check-inhibitors=yes soft-reboot
[ 2993.704326] H systemd-logind[41]: The system will soft-reboot now!
...
[ 3001.249302] H systemd[1]: Sending SIGKILL to PID 65 (sleep).
...
[ 3001.303158] H testsuite-82.sh[136]: + systemd-notify '--status=Second Boot'
...
[ 3001.409504] H testsuite-82.sh[136]: + systemd-run -p Type=exec --unit=testsuite-82-nosurvive.service sleep infinity
[ 3001.414061] H testsuite-82.sh[165]: Failed to start transient service unit: Unit testsuite-82-nosurvive.service was already loaded or has a fragment file.

Spotted in Ubuntu CI.
2023-10-03 16:40:49 +02:00
Frantisek Sumsal
399a8a5eb1 test: use --service-type= instead of -p Type= 2023-10-03 16:38:35 +02:00
Luca Boccassi
d3dde190c1 docs: fix spelling in UEFI_SECURITY.md
that that -> that
2023-10-03 12:40:42 +02:00
Zbigniew Jędrzejewski-Szmek
1c287c9ac5
Merge pull request #29420 from bluca/uefi_doc
Fixups for UEFI_SECURITY.md
2023-10-03 11:57:59 +02:00
Luca Boccassi
7f9231f0d8 docs: rephrase sentence about UKIs in UEFI_SECURITY.md 2023-10-03 10:12:36 +01:00
Luca Boccassi
e2ae5f0224 docs: rephrase sentence about addons measuring in UEFI_SECURITY.md 2023-10-03 10:08:33 +01:00
Yu Watanabe
fcf17d693c man: update the list of ignored options by Anonymize=yes
Closes #29362.
2023-10-03 10:02:02 +01:00
Luca Boccassi
8867122783
Merge pull request #29390 from yuwata/sd-netlink-make-default-timeout-configurable
sd-netlink: make the default timeout configurable
2023-10-02 22:59:07 +01:00
NRK
6c7b1ea1be udevadm: avoid side-effect in assert()
this was found when trying to use __builtin_assume() with clang:
https://github.com/systemd/systemd/pull/29409#issuecomment-1743575402
2023-10-02 22:58:45 +01:00
Dan Streetman
3ed342562a tpm2: edit tpm2_get_or_create_srk() comment
Adjust the comment to correct the return value, i.e. 1 for SRK created, 0 for
SRK already exists, <0 on error.
2023-10-02 22:58:13 +01:00
Luca Boccassi
359d4b04e8 docs: rename src/boot/efi/SECURITY.md as UEFI_SECURITY.md 2023-10-02 19:02:30 +01:00
Luca Boccassi
1f75b649e7 doc: add compiler hardening details to UEFI SECURITY.md 2023-10-02 18:27:13 +01:00
dependabot[bot]
273aca8b62 build(deps): bump systemd/mkosi
Bumps [systemd/mkosi](https://github.com/systemd/mkosi) from adaa41512aa30c952daae5ba0abcf2622d66b93b to a8ecff0defa132d729dcdab38380dcae31138e7e.
- [Release notes](https://github.com/systemd/mkosi/releases)
- [Changelog](https://github.com/systemd/mkosi/blob/main/NEWS.md)
- [Commits](adaa41512a...a8ecff0def)

---
updated-dependencies:
- dependency-name: systemd/mkosi
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 16:54:01 +00:00
Luca Boccassi
fdb0b47bf7
Merge pull request #29407 from CM4all/test-kernel-acl-dummy
src/test: fixups for kernels without ACL and net-dummy
2023-10-02 16:30:39 +01:00
Luca Boccassi
df3e378a5d
Merge pull request #29339 from bluca/mount_namespace_new_api
Use new mount API for bind/image mount tunnel
2023-10-02 16:04:26 +01:00
Benjamin Peterson
8ec951e8d5 resolve: tolerate merging a zero-ttl RR and a nonzero-ttl RR if not mDNS
resolved rejected RRsets containing a RR with a zero TTL and a RR with a nonzero TTL. In practice—see the linked issues—, this case triggered when an AF_UNSPEC query to a CNAMEd domain returned a zero TTL for the CNAME on one address family and a nonzero TTL for the CNAME on the other address family.

The zero-nonzero TTL check cites RFC 2181 § 5.2 in a comment. That section says DNS clients should reject any RRset containing differing TTLs, which the check only implements a very special case of. That the old behavior caused real-world false NXDOMAIN results is reason enough to completely ignore the RFC's recommendation. However, mDNS treats zero TTLs specially, so the error case needs to be kept for mDNS.

Fixes https://github.com/systemd/systemd/issues/22177
Fixes https://github.com/systemd/systemd/issues/20617
Fixes https://github.com/systemd/systemd/issues/19118
2023-10-02 16:47:36 +02:00
Lennart Poettering
015d19e3ac
Merge pull request #29405 from poettering/boot-xmalloc0
boot: add xmalloc0() + memzero() helpers
2023-10-02 16:45:40 +02:00
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
Luca Boccassi
c7986bc9b6 test: fix check in test unit in TEST-50-DISSECT
'[[ not found'
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
Luca Boccassi
34d4181fbb
Merge pull request #29335 from abderrahim/version-info-check
man: add checks for missing version information
2023-10-02 10:56:15 +01: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
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
dependabot[bot]
b503c76689 build(deps): bump meson from 1.2.1 to 1.2.2 in /.github/workflows
Bumps [meson](https://github.com/mesonbuild/meson) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/mesonbuild/meson/releases)
- [Commits](https://github.com/mesonbuild/meson/compare/1.2.1...1.2.2)

---
updated-dependencies:
- dependency-name: meson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-01 18:16:06 +00:00