Commit Graph
56726 Commits
Author SHA1 Message Date
Daan De Meyer 097536a49c analyze: Add dlopen-metadata verb (#39457)
systemd-analyze dlopen-metadata will show dlopen metadata
in the ELF binary.
2025-10-30 13:56:01 +01:00
Daan De Meyer 92ea9584c6 test-namespace: Migrate to new assertion macros 2025-10-30 13:36:05 +01:00
Lennart Poettering 9851382c12 homed: always report that registered users are members of their own groups
As per the userdb spec we should report in GetMemberships() that users
are in their own groups. Hence follow the spec.

Fixes: #26061
2025-10-30 12:12:00 +00:00
Daan De Meyer 0fe29d0672 analyze: Add dlopen-metadata verb
systemd-analyze dlopen-metadata will show dlopen metadata
in the ELF binary.
2025-10-30 11:58:23 +01:00
Daan De Meyer 004b7f1f7e elf-util: Add support for parsing dlopen metadata
Then we can add support for showing dlopen metadata to systemd-analyze.
2025-10-30 08:41:43 +01:00
Lennart Poettering 90305bd17a pull: add pretty progress bar to systemd-pull too
This already exists in systemd-import, but let's add it for systemd-pull
too.
2025-10-29 13:09:57 +01:00
Lennart Poettering 6fa83be763 main: switch explicitly to tty1 on soft-reboot
Fixes: #39462
2025-10-29 13:09:20 +01:00
Daan De Meyer 2988bba60f mount-util: Iterate mountinfo backwards when unmounting
Submounts will always be located further in the mountinfo file, so
when we're unmounting, iterating backwards is likely to be more
efficient than iterating forwards. It'll also reduce the amount of
EBUSY debug logging we'll get since we'll stop trying to unmount
parent mounts with submounts which will always fail with EBUSY.
2025-10-29 12:01:32 +01:00
Daan De Meyer 35e03f6302 core: Don't setup mount propagation tunnel if not required
If we know we have mount_setattr(), then we don't need the mount
propagation tunnel, so don't set it up.
2025-10-29 12:01:02 +01:00
Allison Karlitskaya 516df12af9 udevadm: flush output after each monitor event
If you're using `udevadm monitor` from a script, without a tty, then
libc defaults to being fully-buffered, and won't flush stdout after
newlines.  This is fine for tools that dump a bunch of data and then
exit immediately.  It's a problem for tools like `udevadm monitor` which
have long pauses: the buffered data can get stuck in the buffer for an
unbounded amount of time.

In the Cockpit project we've been working around this for some time with
`stdbuf` which is a `LD_PRELOAD` hack to change the libc buffering
behaviour, but we'd like to stop doing that.

Let's make sure we flush the buffer after each event.
2025-10-28 17:51:19 +01:00
Daan De Meyer 308d40626d basic: Use xopenat_full() in mkdir_p_root_full() 2025-10-28 13:01:48 +01:00
Yu Watanabe bdbd902606 logind: support deserializing session leader through pidfdid (#39440)
Fixes #39437
2025-10-28 15:28:09 +09:00
Yu Watanabe 84f3f30e72 udev-watch: allow to log from child process
Otherwise, it is hard to debug issues in reread_partition_table().

This also drop unnecessary FORK_RLIMIT_NOFILE_SAFE flag.
2025-10-28 15:22:21 +09:00
Lennart Poettering a6146b250e machined: support image clone/rm operations unpriv, and make hidden images always read-only (#39408) 2025-10-27 17:06:26 +01:00
Yu Watanabe e772db52c3 core/exec-invoke: use strnpcpy() where appropriate (#39446) 2025-10-26 09:43:14 +09:00
Luca Boccassi d08b2f2a06 sd-varlink: when expecting a type and refusing due to mismatch say what was received
Sometimes it is not obvious why a message is not accepted,
so explicitly say what type was received in the log message
2025-10-26 09:30:02 +09:00
Mike Yuan 45eea629e3 logind: support deserializing session leader through pidfdid
People make weird assumptions around state preservation and
expect logind to be stoppable. While this is realistically
not OK we can probably improve things a little.

This complements f01d8658a3 and
adds support for deserializing the LEADER_PIDFDID= field.
We still prioritize pidfd if got one from fdstore (as with
service_notify_message_parse_new_pid() in pid1), but otherwise
this should make logind restart more robust when fdstore
gets spuriously cleared.

Fixes #39437
2025-10-25 19:42:58 +02:00
Mike Yuan a169a952b6 core/exec-invoke: use strnpcpy() where appropriate 2025-10-25 19:31:06 +02:00
Mike Yuan a181a9192b strxcpyx: do not access dest as an array
dest is a pointer to a string, not an array. Accessing
the "first element" just happens to work, but let's
be more careful.
2025-10-25 19:31:06 +02:00
Yu Watanabe f03b49b079 core/exec-invoke: relax restriction for process name length
Previously, we limit the length of process name by 8.
This relax the restriction then at least process comm or
program_invocation_name contains the untrucated process name.

Closes #38367.
2025-10-25 18:50:32 +02:00
Yu Watanabe 687bb9e2ce test: sort libraries in test-dlopen-so 2025-10-25 14:03:13 +09:00
Yu Watanabe 5e385fe16e locale: use include directory for libxkbcommon
To support the case the headers are installed at an unusual place.
2025-10-25 13:06:02 +09:00
Yu Watanabe 85fb6ad573 meson: add all 'cflags' dependencies to libshared
This should not change any behavior in most common setups.
But, may be useful when headers are installed at non-default places.
2025-10-25 12:52:23 +09:00
Yu Watanabe 910e3843fd pwquality: drop 'sym_' prefix from cleanup function
This also drops unnecessary symbols in header.
2025-10-25 11:54:21 +09:00
Yu Watanabe 7d7b1755e9 passwdqc: drop 'sym_' prefix from cleanup function
This also drops unnecessary symbols in header.
2025-10-25 11:53:41 +09:00
Yu Watanabe 56b52c00e3 qrcode-util: drop 'sym_' prefix from cleanup function 2025-10-25 11:45:20 +09:00
Yu Watanabe 63649394cc pcre2-util: drop trivial pattern_free() wrapper 2025-10-25 11:43:00 +09:00
Yu Watanabe 8aadb82966 pcre2-util: drop 'sym_' prefix from cleanup functions 2025-10-25 11:28:30 +09:00
Yu Watanabe 76afd4dc4a elf-util: drop 'sym_' prefix from cleanup function 2025-10-25 11:26:39 +09:00
Yu Watanabe 53dceb8a6d xkbcommon-util: drop 'sym_' prefix from cleanup functions 2025-10-25 11:25:41 +09:00
Yu Watanabe fc945d22d5 libarchive-util: drop 'sym_' prefix from cleanup functions 2025-10-25 11:25:19 +09:00
Yu Watanabe afb9b7c581 apparmor-util: drop 'sym_' prefix from cleanup functions 2025-10-25 11:21:12 +09:00
Yu Watanabe 78c86080ec compress: drop 'sym_' prefix from cleanup functions 2025-10-25 11:18:52 +09:00
Yu Watanabe 744d0e4422 pkcs11-util: drop 'sym_' prefix from cleanup functions 2025-10-25 11:15:05 +09:00
Yu Watanabe d0520b1ee7 module-util: drop 'sym_' prefix from cleanup functions 2025-10-25 11:12:16 +09:00
Yu Watanabe 163a3990fa openssl-util: fix spurious indent 2025-10-25 10:40:43 +09:00
Yu Watanabe 73063abf24 openssl-util: drop unused functions
They were introduced by 5f163921e9, but
never used.
2025-10-25 10:26:49 +09:00
Yu Watanabe 5f884da903 cleanup: introduce DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_MACRO_RENAME() macro
This is similar to DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(), but for
macro.
2025-10-25 10:22:16 +09:00
Daniel Hast 101dd41cb4 tree-wide: add basic validation of --background argument
Check whether the argument of the `--background` option of
`systemd-run`, `run0`, `systemd-nspawn`, `systemd-vmspawn`, and
`systemd-pty-forward` is either empty or looks like an ANSI color code,
and reject invalid values when parsing arguments.

We consider a string to look like an ANSI color code if it consists of
one or more sequences of ASCII digits separated by semicolons. This
permits every valid ANSI color code, and should reject anything that
results in garbled output.
2025-10-25 09:56:31 +09:00
Lennart Poettering 9d5fc235f4 discover-image: support clone + rm operation also unpriv 2025-10-24 17:51:00 +02:00
Lennart Poettering ee327e086e discover-image: imply that hidden images are read-only
Marking a whole directory tree OS image as read-only is difficult
privilege-wise, because so far we rely on the FS_IMMUTABLE_FL which is
not accessible to unpriv clients.

One fundamental place where we currently rely on marking images
read-only is for keeping pristine copies of the originally downloaded
image around, which we place in "hidden" image directories. This is
probably the most relevant usecase for the read-only flag. And moreover,
the only usecase for the hidden images are these read-only pristine
copies.

Hence, let's make this work reasonably in the unpriv case, and simply
imply the read-only flag for hidden images. This is strictly speaking a
change in behaviour, but effectively it shouldn't be, because for nspawn
containers that are executed we insist on names that are hostname
compatible, and hidden names aren't (because they start with a dot).
2025-10-24 17:51:00 +02:00
Lennart Poettering 502f7a2b80 rm-rf: make sure we can safely remove dirs we have no access to via rm_rf_at()
Previously, we'd first empty a dir, and then remove it. This works fine
as long as we have access to a dir. But in some cases (like for example
a foreign owned container tree) we might not have access to the dir, but
are still able to remove it (because it is empty, and in a dir we own).
Hence let's try that first. If it works, we do not need to enter the dir
(and thus fail).
2025-10-24 17:38:29 +02:00
Michal Sekletar 28e62e684b coredump: handle ENOBUFS and EMSGSIZE the same way
Depending on the runtime configuration, e.g. sysctls
net.core.wmem_default= and net.core.rmem_default and on the actual
message size, sendmsg() can fail also with ENOBUFS. E.g. alloc_skb()
failure caused by net.core.[rw]mem_default=64MiB and huge fdinfo list
from process that has 90k opened FDs.

We should handle this case in the same way as EMSGSIZE and drop part of
the message.
2025-10-24 15:23:09 +01:00
Daan De Meyer 1835ce2f04 rpm: Make sure we only match files in the directories in triggers
/usr/lib/systemd/system will match /usr/lib/systemd/systemd-networkd,
which is definitely not the intention.
2025-10-24 10:29:40 +09:00
Yu Watanabe fe5625cbba mountfsd: allow privileged users to mount bare unprotected filesystems (#39411)
Split from https://github.com/systemd/systemd/pull/39394 as that
requires deeper rework that will take more time
2025-10-24 09:40:52 +09:00
Yu Watanabe 9b414a38fa tree-wide: drop unused libcap dependencies 2025-10-24 01:52:59 +09:00
Yu Watanabe a98f710fdf capability-util: use capability_get() and _apply() in capability_quintet_enforce() 2025-10-24 01:52:59 +09:00
Yu Watanabe 6e5f07756f capability-util: use capability_get() and _apply() in change_capability() 2025-10-24 01:52:59 +09:00
Yu Watanabe 69eb331b6c capability-util: use capability_apply() in drop_privileges() 2025-10-24 01:52:59 +09:00
Yu Watanabe 256d6f3f2f capability-util: rework capability_gain_cap_setpcap() and capability_bounding_set_drop()
This makes the functions use CapabilityQuintet, capability_get(), and
capability_apply().
2025-10-24 01:52:59 +09:00