Commit Graph
58547 Commits
Author SHA1 Message Date
noxiouz 3eacf0d321 login: fix ReleaseSession.Id dispatch flag in io.systemd.Login Varlink handler
The ReleaseSession method's Id field is declared as nullable (?string) in
the IDL, allowing callers to omit it so that the method releases the
caller's own session via session_is_self(NULL). The SD_JSON_MANDATORY flag
in the dispatch table contradicts this and makes omitting Id return -EINVAL
("Invalid argument", parameter "Id") instead.

Drop the flag so omitting Id is treated as passing NULL.

Fixes: 2baca6c22b
2026-03-02 10:06:39 +00:00
Mike Yuan 93d768e0f3 systemd/sd-varlink-idl.h: fix ABI breakage
Follow-up for 2e51ed7fcb
2026-03-02 10:49:52 +01:00
Mike Yuan 452c576927 core/varlink-unit: use VARLINK_ERROR_UNIT_NO_SUCH_UNIT macro
Follow-up for 1fc868ac6b
2026-03-02 10:49:51 +01:00
Thomas Weißschuh 93101e7ef0 nspawn: allow cachestat systemcall
cachestat(2) is essentially a better variant of mincore(2).
As mincore(2) is already allowed, also allow cachestat(2).
2026-03-02 09:29:27 +01:00
Mike Yuan a12a4bdc9a pidref: do not tamper with pidref_acquire_pidfd_id() retval
If a pidfd id is passed to us, it must have originated from
somewhere, i.e. pidfs should be supported on the system.
Hence let's be honest about -EOPNOTSUPP, which might indicate
some bigger problems under the hood, rather than allowing
it to be turned into mild -ESRCH.
2026-03-02 15:25:53 +09:00
Anton Tiurin ce1361d7b3 resolved: use DNS_TYPE_DNSKEY for trust anchor support (#40850)
Fix typo: DNS_TYPE_DNSKEY should be used instead of DNS_TYPE_KEY.
- DNS_TYPE_KEY is deprecated
- Source code at resolved-dns-trust-anchor.c#L313 handles
DNS_TYPE_DNSKEY records, but not DNS_TYPE_KEY
So DNS_TYPE_KEY is not referenced anywhere
2026-03-02 13:44:26 +09:00
Anton Tiurin 2506a57bca resolve: add missing ServiceNotProvided error to Varlink IDL (#40858)
The error is emitted by `vl_method_resolve_service_complete()` when an
SRV record with a root domain hostname is found, indicating the service
is explicitly not offered on the queried domain (RFC 2782 Usage Rules),

but was not declared in the `io.systemd.Resolve` interface definition.

Follow-up for 3d8f2c1464.
2026-03-02 13:22:14 +09:00
noxiouz 1fc868ac6b core: fix typo in Unit.List sentinel error name 2026-03-02 13:19:33 +09:00
Yu Watanabe 5ae3bb09c6 mountpoint-util: add overlay check to fstype_is_blockdev_backed() and simplify fstype_is_api_vfs() (#40866) 2026-03-02 13:15:14 +09:00
Yu Watanabe 3448e05150 core/exec-invoke: correct size for dont_close array in close_remaining_fds() (#40867) 2026-03-02 13:05:42 +09:00
Yu Watanabe 7de42b787d cryptsetup: fix 'tpm2-primary-alg' information in 'cryptsetup luksDump' (#40872)
It was noticed that cryptsetup luksDump outputs

  tpm2-primary-alg: ecc

regardless of the actual primary key type. Namely, in the situation when
RSA SRK is passed to 'systemd-cryptenroll', the output is incorrect and
misleading. Turns out 'tpm2-primary-alg' is not currently used for
unsealing as 'tpm2_srk' object has it in its properties but the
misleading information problem stays.

Fix the issue with a two-fold fix:
- Put the SRK primary alg type to the JSON token so 'cryptsetup
luksDump' has a chance to actually print the right information without
the need to inspect SRK.
- Avoid printing 'tpm2-primary-alg' when it is unset in the JSON as the
default 'ECC' may not match the reality.

No real functional change for the sealing/unsealing expected.
2026-03-02 12:40:40 +09:00
Mike Yuan eb8df25a37 core/exec-invoke: make fd array sizing less error-prone
History has clearly shown that we're terrible at keeping
the size of the dont_close array up-to-date. Hence let's
step away from a hardcoded max size for that, instead
always collect all fds in the array initializer and
let compiler figure it out, taking advantage of the fact
that close_all_fds() gracefully handles invalid fds in
the 'except' array.
2026-03-01 13:55:39 +01:00
Mike Yuan f2e7ba1074 core/exec-invoke: drop duplicate addition of handoff_timestamp_fd to dont_close array
Follow-up for 12001b1bf0

It is part of the keep_fds array already, which is intended
for fds that need to survive until the very end of executor
runtime, i.e. across the second close_all_fds() call.
2026-03-01 13:55:39 +01:00
Mike Yuan 0aa70bef5e core/exec-invoke: correct size for dont_close array in close_remaining_fds()
Follow-up for 79dd24cf14
2026-03-01 13:55:39 +01:00
Mike Yuan ec93edc4ca core/exec-invoke: fix potential double close of socket/bpffs fds on failure
The owned fds should be closed before close_all_fds() along the lines
of exec_params/runtime_close(), otherwise they would be left dangling
afterwards.
2026-03-01 13:55:39 +01:00
Mike Yuan b702bbc31c core/execute: drop redundant close of root_directory_fd
exec_params_shallow_clear() will take care of it.
2026-03-01 13:55:30 +01:00
Mike Yuan abffc0ef43 process-util: leave actual log fd closing to close_all_fds() if the latter will be done anyways 2026-03-01 13:18:19 +01:00
Weixie Cui 4980bd05b1 fix: check error with -ENOMEDIUM not ENOMEDIUM
Signed-off-by: Weixie Cui <cuiweixie@gmail.com>
2026-03-01 10:24:45 +00:00
Lennart Poettering d423ec258c nss-systemd,strv: use a common definition of a non-NULL but empty strv
Follow-up for: 239903d44c
2026-03-01 08:51:14 +01:00
Mike Yuan 8df624bfdd sd-varlink: add missing space 2026-02-28 12:01:06 +01:00
Mike Yuan 7982acff82 shared/pager: do not wait for process again after FORK_WAIT
Follow-up for fbd276cb86

Fixes #40873
2026-02-28 12:00:52 +01:00
Mike Yuan 476d0d7643 tmpfiles: downgrade log level for non-existent symlink target
I'm seeing a *lot* of noise induced by missing varlink sockets
under /run/host/ after 3363693935.
2026-02-27 17:11:41 +01:00
Mike Yuan b1c6bcf949 tmpfiles: fix doubled "/" in root + path logging 2026-02-27 17:07:43 +01:00
Vitaly Kuznetsov 4883ef8aae cryptsetup-tokens: Print tpm2-primary-alg: only when it is known
When 'tpm2-primary-alg' is missing in LUKS JSON token, the output of
'cryptsetup luksDump' is always:

	tpm2-primary-alg: ecc

because tpm2_parse_luks2_json() returns the default (TPM2_ALG_ECC). This can be
misleading and wrong. Make tpm2_parse_luks2_json() return the reality and move
the default to tpm2_unseal().
2026-02-27 14:22:22 +01:00
Pontus Lundkvist 352bb934fe mountpoint-util: remove duplicate check in fstype_is_api_vfs()
devtmpfs is part of the @basic-api filesystem-set
2026-02-27 14:10:27 +01:00
Pontus Lundkvist d4acc09d9d mountpoint-util: add exempt for overlay in fstype_is_blockdev_backed()
This allows `systemd-mount` to be used with --type overlay
2026-02-27 14:06:09 +01:00
Vitaly Kuznetsov 295affa3f7 cryptenroll: Save primary algorithm type to the LUKS token
'tpm2-primary-alg' field is currently unset in LUKS JSON token both for the
case when SRK was used for enrolling (--tpm2-device-key=) and for the case when
SRK was obtained/generated (--tpm2-device=). While this information is not
really needed for unsealing (the sealed object itself has key type in it), it
may be convenient to see key type in e.g. 'cryptsetup luksDump' in the
situations where key type matters. Since 'tpm2-primary-alg' is already defined,
just set it properly in all cases.
2026-02-27 14:01:10 +01:00
Mike Yuan 0dbd116351 shared/dropin: use set_contains() where appropriate 2026-02-27 08:50:37 +01:00
noxiouz 3d9191cd5c shared: fix sysext ImageType IDL missing mstack value, add enum IDL test
Add the missing 'mstack' value to the ImageType enum in the
io.systemd.sysext Varlink IDL — image_type_table in discover-image.c
already defines IMAGE_MSTACK = "mstack" but it was absent from the IDL.

Export vl_type_ImageType so the test can reference it, and add
TEST_IDL_ENUM(ImageType, ...) to the enums_idl test to catch
similar regressions in the future.
2026-02-27 08:49:54 +01:00
noxiouz 37b8cd71cd shared: fix comment typos in Udev and AskPassword Varlink IDL 2026-02-27 08:49:21 +01:00
noxiouz 54796ea3b2 mountfsd: include imageName in MountImage Varlink reply 2026-02-27 08:48:48 +01:00
noxiouz c22a131e74 import: fix AlreadyInProgress Varlink error missing remote field
The handler sends the remote URL as a parameter via sd_varlink_errorbo()
but the IDL declared the error with no fields, making the payload
undiscoverable via introspection.
2026-02-27 08:48:25 +01:00
noxiouz 56d44e8a02 hostname: fix OperatingSystemImageID/Version Varlink IDL
Both fields are populated from IMAGE_ID/IMAGE_VERSION in os-release,
which are plain strings.

Fix typo in include.
2026-02-27 04:09:15 +01:00
Luca Boccassi 231f2bcd40 tpm2-setup: make NV index space exhaustion issues more discoverable (#40841) 2026-02-26 23:52:28 +00:00
Mike Yuan efa6ba2ab6 core: validate input cgroup path more prudently 2026-02-26 14:23:25 +01:00
Mike Yuan 42aee39107 core/cgroup: avoid one unnecessary strjoina() 2026-02-26 14:23:23 +01:00
Mike Yuan 679e738bf4 core/dbus-unit: query sender uid only once, validate unit uid early
Follow-up for 05f5156ad1
2026-02-26 14:23:23 +01:00
Mike Yuan 4e6e3b8707 sd-json: fix off-by-one issue when updating parent for array elements
Follow-up for 8525bb369a
2026-02-26 14:23:12 +01:00
Lennart Poettering ac8266c7c2 tpm2-setup: make NV index space exhaustion issues more discoverable
Let's log about this explicitly, and include a message catalog entry for
it.
2026-02-26 11:34:59 +01:00
Lennart Poettering a01912ef29 tpm2-util: fix log level of one log call 2026-02-26 11:34:59 +01:00
Zbigniew Jędrzejewski-Szmek 13167bfc2f core/socket: fix reversed symlink direction in error message
After the update to 260-rc1 in Fedora Rawhide, we get a lot of messages like
this:
  systemd[1]: systemd-resolved-monitor.socket:
  Failed to create symlink /run/systemd/resolve/io.systemd.Resolve.Monitor →
  /run/varlink/registry/io.systemd.Resolve.Monitor, ignoring: Permission denied

The actual issue will need to be fixed too, but let's fix the message first.
While at it, let's rename the variables to be meaningful.
2026-02-26 11:34:22 +01:00
Zbigniew Jędrzejewski-Szmek 8a2b2828cc test-qr-code: allow specifying the text to encode 2026-02-26 09:20:59 +01:00
Yu Watanabe 2900f04c82 network: do not create state file for removed interface
Fixes #40817.
2026-02-26 08:50:50 +01:00
Zbigniew Jędrzejewski-Szmek e9abcd9b26 rpm/systemd-update-helper: use 'enqueue-marked-jobs'
Without this, a warning is emitted on upgrades.
Follow-up for c008f88ded.
2026-02-25 23:03:14 +00:00
Luca Boccassi eaac6fb1e0 boot: import Snapdragon device hwid json files, install them and use them from ukify (#40541)
The json files were originally generated for Ubuntu stubble and are kown
to work since they ship in all Ubuntu arm64 ISOs by default.

Some of the devices might not be supported in mainline Linux yet and use
preliminary compatible strings.
2026-02-25 15:46:30 +00:00
Zbigniew Jędrzejewski-Szmek 35c404de9b Upgrade /tmp when PrivateTmp=yes/DefaultDeps=no to disconnected (#39790) 2026-02-25 16:14:13 +01:00
Zbigniew Jędrzejewski-Szmek 04897fbbee bootctl: override is_efi_boot() check by --variables= option (#40413)
Fixes #40392.
2026-02-25 15:42:53 +01:00
Luca Boccassi 117ec9db7e ukify: default --hwids to /usr/lib/systemd/boot/hwids/<EFI_ARCH>/
If the option is not manually specified, and the hwids directory exists
for the target EFI architecture, default to it. Allow passing '' to skip.

Fixes https://github.com/systemd/systemd/issues/40542
2026-02-25 13:51:31 +00:00
Luca Boccassi 68aef1be15 Install hwids in /usr/lib/systemd/boot/hwids/<EFI_ARCH>/
These are meant to ship with ukify, in the same package,
so install them when ukify is enabled. Given they are
hardware-specific, use a per-arch subdirectory to make it
easier to enable them by default in ukify.
2026-02-25 13:51:31 +00:00
Tobias Heider d6332fa367 boot: import Snapdragon device hwid json files
Add hwids json files for Snapdragon devices that use of this
feature since they don't ship with devie trees embedded in firmware.
The json files were originally generated for Ubuntu stubble and
are kown to work since they ship in all Ubuntu arm64 ISOs by default.

Some of the devices might not be supported in mainline Linux yet
and use preliminary compatible strings.
2026-02-25 13:51:31 +00:00