Commit Graph
46345 Commits
Author SHA1 Message Date
Luca Boccassi 9e615fa3aa core: add WantsMountsFor=
This is the equivalent of RequiresMountsFor=, but adds Wants= instead
of Requires=. It will be useful for example for the autogenerated
systemd-cryptsetup units.

Fixes https://github.com/systemd/systemd/issues/11646
2023-11-29 11:04:59 +00:00
Lennart Poettering 0321248b79 stdio-bridge: properly handle org.freedesktop.DBus.Local.Disconnected signal
Previously, we'd forward org.freedesktop.DBus.Local.Disconnected like
any other message to the other side. But that's not OK, as messages in
the org.freedesktop.DBus.Local.* namespace are supposed to never touch
the wire, and are synthetic messages that the library uses to
communicate with the app, but never with other apps.

dbus-daemon never cared, but dbus-broker complains about this, hence
clean this up.

See: #28514
2023-11-29 14:15:44 +09:00
Lennart Poettering ec43827bf7 stub: get_extra_dir() can return NULL
If we have a device path that is not the usual file system directory
get_extra_dir() will return NULL. Handle that gracefully.

Fixes: #30228
2023-11-28 23:53:30 +00:00
Lennart Poettering 6d2b2ae834 homed: properly handle operation exit statusses 2023-11-29 05:51:28 +09:00
Zbigniew Jędrzejewski-Szmek 25757715fe shared/cryptsetup-util: build problematic code only in developer mode
This code doesn't link when gcc+lld is used:

$ LDFLAGS=-fuse-ld=lld meson setup build-lld && ninja -C build-lld udevadm
...
ld.lld: error: src/shared/libsystemd-shared-255.a(libsystemd-shared-255.a.p/cryptsetup-util.c.o):
  symbol crypt_token_external_path@@ has undefined version
collect2: error: ld returned 1 exit status

As a work-around, restrict it to developer mode.

Closes https://github.com/systemd/systemd/issues/30218.
2023-11-28 20:23:45 +00:00
Lennart Poettering b0f666f817 boot: suffix SecureBoot message with newline
Output is otherwise so weird, since this is the last log line seen for a
while typically, and if it doesn#t put the cursor back in the first
column it looks like something is incomplete and hanging. Hence do what
we always do: finish log messages with a newline.
2023-11-28 15:40:38 +00:00
Lennart Poettering f200d6cae3 pam-util: fix pam_syslog_pam_error() format string
To cut off a string at some position we must set the "precision" not the
field width in format strings.

This led to some assert()s being hit where they really should not be.
2023-11-28 15:36:51 +00:00
Lennart Poettering 0d5f59a248 gpt-auto-generator: enable TPM2 unlocking in gpt-auto-generator
If we detect a TPM, let's also unlock the disk with it, if it has an
enrollment for that.

Fixes: #30176
2023-11-28 15:36:20 +00:00
Luca Boccassi 499d32655f Merge pull request #30203 from yuwata/resolve-dump-cache
resolve: fix varlink message verification
2023-11-28 15:35:11 +00:00
Luca Boccassi 3dfbddf3ee Merge pull request #30216 from poettering/loginctl-table-tweaks
loginctl: minor tweaks to tabular output
2023-11-28 15:33:35 +00:00
Luca Boccassi 5ff5250787 Merge pull request #30220 from yuwata/journald-vs-soft-reboot
unit: stop journald before SIGKILL on soft-reboot
2023-11-28 15:32:08 +00:00
Lennart Poettering febfec0849 loginctl: show null fields for unset seat/tty fields of sessions 2023-11-28 11:33:01 +01:00
Lennart Poettering 8bfa22f079 loginctl: set appropriate ersatz strings for all tables 2023-11-28 11:33:01 +01:00
Lennart Poettering 082dd188d2 logind: align columns of a table 2023-11-28 11:13:14 +01:00
Yu Watanabe 1568430c65 utmp-wtmp: fix wrong suffix assignment on putting dead process
Fixes a bug introduced by f1d553e9df.

Fixes #30213.
2023-11-28 17:46:01 +08:00
Yu Watanabe 14338cca99 core/cgroup: fix compile error
With gcc-13,
```
CFLAGS="-O3 -fno-semantic-interposition" meson setup build
```
triggers the following error:
```
../src/core/cgroup.c: In function ‘cgroup_context_dump’:
../src/core/cgroup.c:633:44: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
  633 |                         "%sDeviceAllow: %s %s\n",
      |                                            ^~
cc1: some warnings being treated as errors
```

Fixes #30223.
2023-11-28 10:35:52 +01:00
Yu Watanabe 698da597e1 varlinkctl: add short comment 2023-11-28 18:28:17 +09:00
Yu Watanabe e521898d83 capability-util: avoid false-positive use-of-uninitialized-value error
fuzzers randomly fail with the following:
```
==172==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x7f41169cb39b in update_argv /work/build/../../src/systemd/src/basic/argv-util.c:96:13
    #1 0x7f41169cb39b in rename_process /work/build/../../src/systemd/src/basic/argv-util.c:210:16
    #2 0x7f4116b6824e in safe_fork_full /work/build/../../src/systemd/src/basic/process-util.c:1516:21
    #3 0x7f4116bffa36 in safe_fork /work/build/../../src/systemd/src/basic/process-util.h:191:16
    #4 0x7f4116bffa36 in parse_timestamp /work/build/../../src/systemd/src/basic/time-util.c:1047:13
    #5 0x4a61e6 in LLVMFuzzerTestOneInput /work/build/../../src/systemd/src/fuzz/fuzz-time-util.c:16:16
    #6 0x4c4a13 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
    #7 0x4c41fa in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
    #8 0x4c58c9 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:757:19
    #9 0x4c6595 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:895:5
    #10 0x4b58ff in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
    #11 0x4def52 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #12 0x7f4115ea3082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: e678fe54a5d2c2092f8e47eb0b33105e380f7340)
    #13 0x41f5ad in _start (build-out/fuzz-time-util+0x41f5ad)

DEDUP_TOKEN: update_argv--rename_process--safe_fork_full
  Uninitialized value was created by an allocation of 'fv' in the stack frame of function 'have_effective_cap'
    #0 0x7f41169d3540 in have_effective_cap /work/build/../../src/systemd/src/basic/capability-util.c:21
```
2023-11-28 10:22:39 +01:00
Yu Watanabe d5fd7faa03 varlink: fix key name in reply of org.varlink.service.GetInterfaceDescription
Fixes https://github.com/systemd/systemd/pull/30203#issuecomment-1826746111.
2023-11-28 04:10:25 +09:00
Yu Watanabe 520ae9cac7 resolve: fix varink message verification
Fixes #30199.
2023-11-28 04:10:25 +09:00
Zbigniew Jędrzejewski-Szmek 78b95ccad8 test-time-util: suppress timestamp conversion failures for Africa/Khartoum timezone
Our timestamp conversion roundtrip test was failing. But I think that this
is not our bug:

$ TZ='Africa/Khartoum' date --date='@1509482094'
Tue Oct 31 23:34:54 EAT 2017
$ TZ='Africa/Khartoum' date --date='Tue Oct 31 23:34:54 EAT 2017' +%s
1509485694
$ TZ='Africa/Khartoum' date --date='@1509485694'
Tue Oct 31 23:34:54 CAT 2017
$ echo $[1509485694 - 1509482094]
3600

This is essentially the same as what happens in our test. After a round-trip, we
end up one hour ahead.

> For 1509482094632752, from the change log of tzdata:
>
> Release 2017c - 2017-10-20 14:49:34 -0700
>
>  Changes to future timestamps
>    Sudan will switch from +03 to +02 on 2017-11-01.

Fixes https://github.com/systemd/systemd/issues/28472.
2023-11-27 16:22:09 +00:00
Luca Boccassi 04fc5b6047 Merge pull request #30170 from bluca/exec_bpf_fd
core: pass bpf_outer_map_fd to sd-executor only if RestrictFileSystems was set
2023-11-27 15:44:50 +00:00
Frantisek Sumsal 538291b0d8 systemctl: include unit ID in the property map
Otherwise we get a not very nice message when trying to display a
non-existent man page:

~# systemctl cat test.service
[Unit]
Description=Hello
[Service]
ExecStart=true
~# systemctl help test.service
Documentation for (null) not known.
2023-11-25 21:36:10 +01:00
Frantisek Sumsal a986de6899 import: append % to X_IMPORT_PROGRESS=
Since we parse it on the other side via parse_percent() which requires
that, otherwise we get an error:

[    8.133131] testsuite-13.sh[649]: + machinectl import-raw /tmp/container.raw container-raw
[    8.175035] machinectl[1143]: Enqueued transfer job 1. Press C-c to continue download in background.
[    8.182130] machinectl[1143]: Importing '/tmp/container.raw', saving as 'container-raw'.
[    8.182377] systemd-importd[1144]: Got invalid percent value '0', ignoring.
[    8.182451] machinectl[1143]: Imported 0%.
[    8.282669] systemd-importd[1144]: Got invalid percent value '40', ignoring.
[    8.282746] machinectl[1143]: Imported 40%.
[    8.366448] machinectl[1143]: Wrote 64.0M.
[    8.366519] machinectl[1143]: Operation completed successfully.
[    8.366617] machinectl[1143]: Exiting.
2023-11-25 20:42:13 +01:00
Mike Yuan 0cdffada3d nspawn-patch-uid: clarify that changing mode of symlink is unsupported 2023-11-25 19:12:20 +08:00
Mike Yuan 677e644530 Revert "nspawn-patch-uid: try fchmodat2() to restore mode of symlink"
This reverts commit 30462563b1.

fchmodat2(), while accepting AT_SYMLINK_NOFOLLOW as a valid flag,
always returns EOPNOTSUPP when operating on a symlink. The Linux kernel
simply doesn't support changing the mode of a symlink.

Fixes #30157
2023-11-25 19:12:15 +08:00
Paymon MARANDI b99e4922ea ukify: be more explicit about where to find ukify
when KERNEL_INSTALL_UKIFY is not supplied we set ukify to $PWD/ukify

that will fail (perhaps only for manual installations):
FileNotFoundError: [Errno 2] No such file or directory: '/usr/src/linux-6.7-rc1/ukify'

this will make sure we have a sane default for UKIFY

Signed-off-by: Paymon MARANDI <paymon@utubeipod.xyz>
2023-11-25 12:53:29 +09:00
huyubiao c00b446d93 udevadm: exiting udevadm monitor normally under SIGTERM or SIGINT
Under SIGTERM or SIGINT, exit event and release resources, and exit udevadm monitor normally.
2023-11-25 12:53:10 +09:00
Yu Watanabe 33d11a2b69 analyze: return earlier when there is no path to be prepended
Follow-up for 2f6181ad4d.

Addresses the post-merge comment:
https://github.com/systemd/systemd/pull/30172#discussion_r1404209035
2023-11-25 12:52:59 +09:00
Yu Watanabe fd097a79d5 Merge pull request #30188 from YHNdnzj/memory-accounting-followup
core: a few fixes and improvements for memory accounting
2023-11-25 12:52:48 +09:00
Yu Watanabe 2c29813da3 run: escape command for description
The command arguments may contain spurious characters, e.g. line-break.
When we use command arguments as a description of a unit, we should
escape them.

Fixes #30187.
2023-11-25 12:52:35 +09:00
Mike Yuan f17b07f4d7 core/cgroup: use the cached memory accounting value when cgroup is gone
Follow-up for 9824ab1f00

Fixes https://github.com/systemd/systemd/issues/28542#issuecomment-1825413237
2023-11-25 00:38:49 +08:00
Mike Yuan bfb6b1214a bus-print-properties: prettify more unset properties 2023-11-25 00:38:49 +08:00
Mike Yuan 3f362012ce bus-print-properties: ignore CGROUP_LIMIT_MAX for Memory*{Current,Peak}
MemoryCurrent and MemoryAvailable are shown as "[not set]" when UINT64_MAX
(unset). Let's do the same for the newly-added Memory*{Current,Peak} properties.
2023-11-24 23:22:41 +08:00
Mike Yuan 35c08a56a1 core/dbus-unit: don't log cgroup v1 property name 2023-11-24 23:22:40 +08:00
Luca Boccassi 36f4476361 Merge pull request #30172 from yuwata/analyze-verify-unit-path
analyze: do not prepend CWD to SYSTEMD_UNIT_PATH needlessly
2023-11-24 10:35:28 +00:00
Lennart Poettering c7896cecea pcrextend: fix minor memory leak
Also, simplify the code a bit by using json_dispatch_unbase64_iovec().
2023-11-24 12:21:43 +09:00
Yu Watanabe 2bab4caaf9 login: do not clear wall message before shutting down
This fixes a regression caused by 5ed73478e1
and aa6123e85e.

With these commits, when Reboot dbus method or friends is called,
reset_scheduled_shutdown() is called before shutting down the system,
so the wall message was cleared.

As the wall message itself is unrelated to the scheduling of shutting
down systems, let's keep the message.

Fixes #30167.
2023-11-24 11:11:57 +08:00
Yu Watanabe 2f6181ad4d analyze: do not prepend the current working directory to SYSTEMD_UNIT_PATH needlessly
If the requested unit is not in the current working directory, it is not
necessary to include the current working directory in SYSTEMD_UNIT_PATH.

Follow-up for 45519d13a4.

Fixes #30166.
2023-11-24 05:28:14 +09:00
Yu Watanabe ff7af46edb analyze: set SYSTEMD_UNIT_PATH in verify_generate_path()
Then, rename verify_generate_path() -> verify_set_unit_path().
2023-11-24 05:20:13 +09:00
Yu Watanabe c131e8b706 analyze: shorten code a bit
No functional change, just refactoring.
2023-11-24 05:19:14 +09:00
Yu Watanabe 6636145b3e analyze: drop duplicated :
Before, this returns e.g. "/current_dir::",
After, this returns e.g. "/current_dir:".
2023-11-24 04:44:35 +09:00
Luca Boccassi 2d042c75ff core: remove redundant check when serializing FDs
The helpers already skip if the FD is < 0
2023-11-23 19:14:52 +00:00
Luca Boccassi 60ef4baeed core: pass bpf_outer_map_fd to sd-executor only if RestrictFileSystems was set
It causes SELinux denials to be raised, so restrict it only where needed

Follow-up for beb4ae8755
2023-11-23 19:08:38 +00:00
Mike Yuan b7c1f9eaf4 hibernate-resume: actually set HibernateInfo.offset
Follow-up for a628d933cc
2023-11-23 18:15:37 +00:00
Mike Yuan bed6bffc9a analyze: don't open systemd-executor needlessly
Fixes #30162
2023-11-23 20:58:20 +08:00
Mike Yuan 9136de6934 analyze: use FOREACH_ARRAY more 2023-11-23 20:53:46 +08:00
Mike Yuan 57d3a6aaf8 core/manager: open our parent dir with O_PATH 2023-11-23 20:44:32 +08:00
Mike Yuan 9e743e7ea9 core/manager: correct and simplify errno handling
open_parent() is our own function that returns negative errno.
2023-11-23 20:42:44 +08:00
Mike Yuan 5cacac04fa core/manager: rename result parameter to ret 2023-11-23 20:42:43 +08:00