Lennart Poettering [Thu, 30 Apr 2020 13:07:45 +0000 (15:07 +0200)]
basic: add STRCASE_IN_SET() which is to STR_IN_SET() what strcaseeq() is to streq()
Frantisek Sumsal [Fri, 1 May 2020 16:51:33 +0000 (18:51 +0200)]
man: fix few spelling errors
Reported by Fossies.org.
Michal Koutný [Fri, 1 May 2020 16:38:10 +0000 (18:38 +0200)]
test: Fix build with !HAVE_LZ4 && HAVE_XZ
HUGE_SIZE was defined inconsistently.
> In file included from ../src/basic/alloc-util.h:9,
> from ../src/journal/test-compress.c:9:
> ../src/journal/test-compress.c: In function ‘main’:
> ../src/journal/test-compress.c:280:33: error: ‘HUGE_SIZE’ undeclared (first use in this function)
> 280 | assert_se(huge = malloc(HUGE_SIZE));
Evgeny Vereshchagin [Wed, 29 Apr 2020 05:04:56 +0000 (05:04 +0000)]
cifuzz: upload artifacts only when the "run fuzzers" step fails
Emmanuel Garette [Thu, 30 Apr 2020 07:51:29 +0000 (09:51 +0200)]
repart: fix partition maximum size segfault
Discovered, tracked down and fix proposed by Emmanuel Garette.
See: https://lists.freedesktop.org/archives/systemd-devel/2020-April/044435.html
(Lennart turned this into a PR)
Fixes: #15608
Zbigniew Jędrzejewski-Szmek [Fri, 1 May 2020 15:26:55 +0000 (17:26 +0200)]
Merge pull request #15652 from MadMcCrow/master
Fix Chromebook Caroline board accelerometer not having correct orientation
Lennart Poettering [Fri, 1 May 2020 06:48:42 +0000 (08:48 +0200)]
Merge pull request #15547 from kkdwivedi/notify-barrier
Introduce sd_notify_barrier
Zbigniew Jędrzejewski-Szmek [Fri, 1 May 2020 05:52:29 +0000 (07:52 +0200)]
Merge pull request #13512 from msekletar/freezer
core: introduce support for cgroup freezer
Kumar Kartikeya Dwivedi [Tue, 28 Apr 2020 13:39:53 +0000 (19:09 +0530)]
man: sd_notify() race is gone with sd_notify_barrier()
Add note for change of behaviour in systemd-notify, where parent pid trick
is only used when --no-block is passed, and with enough privileges ofcourse.
Also, fix a small error in systemd(1).
Kumar Kartikeya Dwivedi [Tue, 28 Apr 2020 14:09:27 +0000 (19:39 +0530)]
Introduce sd_notify_barrier
This adds the sd_notify_barrier function, to allow users to synchronize against
the reception of sd_notify(3) status messages. It acts as a synchronization
point, and a successful return gurantees that all previous messages have been
consumed by the manager. This can be used to eliminate race conditions where
the sending process exits too early for systemd to associate its PID to a
cgroup and attribute the status message to a unit correctly.
systemd-notify now uses this function for proper notification delivery and be
useful for NotifyAccess=all units again in user mode, or in cases where it
doesn't have a control process as parent.
Fixes: #2739
Dan Streetman [Sun, 26 Apr 2020 15:19:55 +0000 (11:19 -0400)]
test: find path for systemd-journal-remote
As Debian/Ubuntu use /lib/systemd instead of /usr/lib/systemd,
add systemd-journal-remote to the list of programs that test-functions
detects the correct path to, and replace its direct usage with
$SYSTEMD_JOURNAL_REMOTE
Also use $JOURNALCTL instead of journalctl.
Also minor correction in install_plymouth() to look in /lib/... as
well as /usr/lib/... and /etc/...
Lennart Poettering [Thu, 30 Apr 2020 20:32:28 +0000 (22:32 +0200)]
Merge pull request #15592 from kennylevinsen/fdpoll-standalone
Introduce FDPOLL=0
Corey Hinshaw [Sun, 23 Feb 2020 03:44:42 +0000 (22:44 -0500)]
Add SetType method to login Session interface
Kenny Levinsen [Thu, 9 Apr 2020 13:30:02 +0000 (15:30 +0200)]
core: (De-)Serialize poll flag for fds in fdstore
This replaces manual string splitting and unescaping with
extract_first_word.
Kenny Levinsen [Wed, 8 Apr 2020 18:19:30 +0000 (20:19 +0200)]
core: Add optional FDPOLL=0 argument to fdstore
A service can specify FDSTORE=1 FDPOLL=0 to request that PID1 does not
poll the fd to remove them on error. If set, fds will only be removed on
FDSTOREREMOVE=1 or when the service is done.
Fixes: #12086
MadMcCrow [Thu, 30 Apr 2020 17:21:41 +0000 (19:21 +0200)]
Fix Chromebook Caroline board accelerometer not having correct orientation
Michal Sekletár [Fri, 3 Apr 2020 07:13:51 +0000 (09:13 +0200)]
test: add test for cgroup v2 freezer support
Michal Sekletár [Wed, 29 Apr 2020 15:53:43 +0000 (17:53 +0200)]
core: introduce support for cgroup freezer
With cgroup v2 the cgroup freezer is implemented as a cgroup
attribute called cgroup.freeze. cgroup can be frozen by writing "1"
to the file and kernel will send us a notification through
"cgroup.events" after the operation is finished and processes in the
cgroup entered quiescent state, i.e. they are not scheduled to
run. Writing "0" to the attribute file does the inverse and process
execution is resumed.
This commit exposes above low-level functionality through systemd's DBus
API. Each unit type must provide specialized implementation for these
methods, otherwise, we return an error. So far only service, scope, and
slice unit types provide the support. It is possible to check if a
given unit has the support using CanFreeze() DBus property.
Note that DBus API has a synchronous behavior and we dispatch the reply
to freeze/thaw requests only after the kernel has notified us that
requested operation was completed.
Lennart Poettering [Thu, 30 Apr 2020 09:59:30 +0000 (11:59 +0200)]
notify: beef up --pid= logic
Prompted by the discussions on #15547.
Lennart Poettering [Thu, 30 Apr 2020 08:08:54 +0000 (10:08 +0200)]
efi: honour SYSTEMD_EFI_OPTIONS even if we wouldn't honour SystemdOptions EFI var due to SecureBoot
Fixes: #14864
Lennart Poettering [Tue, 28 Apr 2020 21:33:46 +0000 (23:33 +0200)]
efi: cache test results of boolean EFI state functions
EFI variable access is nowadays subject to rate limiting by the kernel.
Thus, let's cache the results of checking them, in order to minimize how
often we access them.
Fixes: #14828
Lennart Poettering [Thu, 30 Apr 2020 06:06:26 +0000 (08:06 +0200)]
Merge pull request #15630 from nabijaczleweli/symmetric-buffers
link: Allow configuring RX mini and jumbo ring sizes, too
nabijaczleweli [Wed, 29 Apr 2020 00:00:25 +0000 (02:00 +0200)]
link: Allow configuring RX mini and jumbo ring sizes, too
This now covers all ethtool_ringparam configurables (as of v5.6;
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/ethtool.h?h=v5.6#n488)
nabijaczleweli [Wed, 29 Apr 2020 16:38:56 +0000 (18:38 +0200)]
link: Add units and fix typo in (Rx|Tx)BufferSize= manpage. Clean up the implementation slightly
Michal Sekletár [Wed, 29 Apr 2020 15:40:22 +0000 (17:40 +0200)]
basic/cgroup-util: introduce cg_get_keyed_attribute_full()
Callers of cg_get_keyed_attribute_full() can now specify via the flag whether the
missing keyes in cgroup attribute file are OK or not. Also the wrappers for both
strict and graceful version are provided.
Zbigniew Jędrzejewski-Szmek [Wed, 29 Apr 2020 06:09:53 +0000 (08:09 +0200)]
docs: reorder the section about security reporting to emphasize the sekrit list
Michal Sekletár [Fri, 3 Apr 2020 07:13:59 +0000 (09:13 +0200)]
selinux: do preprocessor check only in selinux-access.c
This has the advantage that mac_selinux_access_check() can be used as a
function in all contexts. For example, parameters passed to it won't be
reported as unused if the "function" call is replaced with 0 on SELinux
disabled builds.
Frantisek Sumsal [Wed, 29 Apr 2020 08:07:12 +0000 (10:07 +0200)]
Merge pull request #15626 from poettering/more-specifiers
tmpfiles,sysusers,pid1: add a bunch of more specifiers
Lennart Poettering [Wed, 29 Apr 2020 07:41:46 +0000 (09:41 +0200)]
Merge pull request #15628 from poettering/tmpfiles-fuzz-fix
systemd-tmpfiles fuzz issue fix
Lennart Poettering [Tue, 28 Apr 2020 22:13:52 +0000 (00:13 +0200)]
tmpfiles: remove unnecessary assert
if we parse an xattr line that has no valid assignment, we might end up
with an empty ->xattr list. Don't hit assert on that, just go on.
Fixes: #15610
Lennart Poettering [Tue, 28 Apr 2020 22:07:06 +0000 (00:07 +0200)]
tmpfiles: use log_syntax() for all parse errors
Lennart Poettering [Tue, 28 Apr 2020 21:16:35 +0000 (23:16 +0200)]
update TODO
Lennart Poettering [Tue, 28 Apr 2020 20:50:50 +0000 (22:50 +0200)]
man: document new specifiers
Lennart Poettering [Tue, 28 Apr 2020 18:03:56 +0000 (20:03 +0200)]
tree-wide: support a bunch of additional specifiers
Lennart Poettering [Tue, 28 Apr 2020 18:02:39 +0000 (20:02 +0200)]
update TODO
Lennart Poettering [Wed, 22 Apr 2020 20:49:02 +0000 (22:49 +0200)]
main: bump RLIMIT_MEMLOCK by physical RAM size
Let's allow more memory to be locked on beefy machines than on small
ones. The previous limit of 64M is the lower bound still. This
effectively means on a 4GB machine we can lock 512M, which should be
more than enough, but still not lock up the machine entirely under
pressure.
Fixes: #15053
Lennart Poettering [Wed, 22 Apr 2020 14:35:32 +0000 (16:35 +0200)]
nspawn: be more careful with creating/chowning directories to overmount
We should never re-chown selinuxfs.
Fixes: #15475
Lennart Poettering [Tue, 28 Apr 2020 17:38:38 +0000 (19:38 +0200)]
update TODO
Daan De Meyer [Tue, 28 Apr 2020 17:29:46 +0000 (19:29 +0200)]
sd-bus: Add sd_bus_query_sender_creds/privilege docs
Zbigniew Jędrzejewski-Szmek [Tue, 28 Apr 2020 17:31:16 +0000 (19:31 +0200)]
Merge pull request #15618 from keszybz/help-output
Small adjustments to --help output
Daan De Meyer [Thu, 23 Apr 2020 19:31:45 +0000 (21:31 +0200)]
sd-bus: Add sd_bus_get_creds_mask docs
Luca Boccassi [Mon, 27 Apr 2020 11:04:35 +0000 (12:04 +0100)]
Revert "detect-virt: also detect "microsoft" as WSL"
WSL2 will soon (TM) include the "WSL2" string in /proc/sys/kernel/osrelease
so the workaround will no longer be necessary.
We have several different cloud images which do include the "microsoft"
string already, which would break this detection. They are for internal
usage at the moment, but the userspace side can come from all over the
place so it would be quite hard to track and downstream-patch to avoid
breakages.
This reverts commit
a2f838d59075a49b012f9b7056664f7ffeed44d2.
Zbigniew Jędrzejewski-Szmek [Tue, 28 Apr 2020 07:09:26 +0000 (09:09 +0200)]
homectl: say "home area" in more places
Follow-up for
b5947b5b100f694c93857a82018fb0656d08be34.
Zbigniew Jędrzejewski-Szmek [Tue, 28 Apr 2020 07:08:37 +0000 (09:08 +0200)]
meson: test userdbctl and homectl --help
Zbigniew Jędrzejewski-Szmek [Tue, 28 Apr 2020 07:13:47 +0000 (09:13 +0200)]
userdbctl: make --help fit in 80 columns
Zbigniew Jędrzejewski-Szmek [Tue, 28 Apr 2020 07:08:04 +0000 (09:08 +0200)]
meson: modernize indentation
By using a newline after executable( and run_target(, we get less
indentation and the indentation level does not change when the returned
object is saved to a variable.
Zbigniew Jędrzejewski-Szmek [Fri, 24 Apr 2020 08:53:46 +0000 (10:53 +0200)]
efivars: retry open and read operations
On my laptop (Lenovo X1carbo 4th) I very occasionally see test-boot-timestamps
fail with this tb:
262/494 test-boot-timestamps FAIL 0.
7348453998565674 s (killed by signal 6 SIGABRT)
08:12:48 SYSTEMD_LANGUAGE_FALLBACK_MAP='/home/zbyszek/src/systemd/src/locale/language-fallback-map' SYSTEMD_KBD_MODEL_MAP='/home/zbyszek/src/systemd/src/locale/kbd-model-map' PATH='/home/zbyszek/src/systemd/build:/home/zbyszek/.local/bin:/usr/lib64/qt-3.3/bin:/usr/share/Modules/bin:/usr/condabin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/zbyszek/bin:/var/lib/snapd/snap/bin' /home/zbyszek/src/systemd/build/test-boot-timestamps
--- stderr ---
Failed to read $container of PID 1, ignoring: Permission denied
Found container virtualization none.
Failed to get SystemdOptions EFI variable, ignoring: Interrupted system call
Failed to read ACPI FPDT: Permission denied
Failed to read LoaderTimeInitUSec: Interrupted system call
Failed to read EFI loader data: Interrupted system call
Assertion 'q >= 0' failed at src/test/test-boot-timestamps.c:84, function main(). Aborting.
Normally it takes ~0.02s, but here there's a slowdown to 0.73 and things fail with EINTR.
This happens only occasionally, and I haven't been able to capture a strace.
It would be to ignore that case in test-boot-timestamps or always translate
EINTR to -ENODATA. Nevertheless, I think it's better to retry, since this gives
as more resilient behaviour and avoids a transient failure.
See
https://github.com/torvalds/linux/blob/master/fs/efivarfs/file.c#L75
and
https://github.com/torvalds/linux/commit/
bef3efbeb897b56867e271cdbc5f8adaacaeb9cd.
Ronan Pigott [Mon, 27 Apr 2020 06:16:55 +0000 (23:16 -0700)]
shell-completion/zsh: update systemd-analyze completions
Haochen Tong [Sun, 26 Apr 2020 22:30:49 +0000 (00:30 +0200)]
zsh: fix disable/enable completion
The "preset" column introduced in
b01c1f305c044a381ad110709a62507d74bf6d86 breaks zsh completion for
systemctl disable/enable. Fix by ignoring everything after the last
space in a line.
Topi Miettinen [Thu, 23 Apr 2020 10:12:23 +0000 (13:12 +0300)]
tests: various small fixes for strict systems
Don't assume that 4MB can be allocated from stack since there could be smaller
DefaultLimitSTACK= in force, so let's use malloc(). NUL terminate the huge
strings by hand, also ensure termination in test_lz4_decompress_partial() and
optimize the memset() for the string.
Some items in /proc and /etc may not be accessible to poor unprivileged users
due to e.g. SELinux, BOFH or both, so check for EACCES and EPERM.
/var/tmp may be a symlink to /tmp and then path_compare() will always fail, so
let's stick to /tmp like elsewhere.
/tmp may be mounted with noexec option and then trying to execute scripts from
there would fail.
Detect and warn if seccomp is already in use, which could make seccomp test
fail if the syscalls are already blocked.
Unset $TMPDIR so it will not break specifier tests where %T is assumed to be
/tmp and %V /var/tmp.
Daan De Meyer [Fri, 24 Apr 2020 16:45:15 +0000 (18:45 +0200)]
sd-bus: Cite sd_bus_creds_unref in sd_bus_get_name_creds docs
Dan Streetman [Sat, 21 Mar 2020 14:59:42 +0000 (10:59 -0400)]
test-cgroup: skip if /sys/fs/cgroup unknown fs
It's not always mounted, e.g. during the build-time tests, it's running inside
a chroot (that's how Debian/Ubuntu build packages, in chroots) so this test
always fails because /sys/fs/cgroup isn't mounted.
Dan Streetman [Sat, 21 Mar 2020 15:19:44 +0000 (11:19 -0400)]
cgroup-util: check for SYSFS_MAGIC when detecting cgroup format
When nothing at all is mounted at /sys/fs/cgroup, the fs.f_type is
SYSFS_MAGIC (0x62656572) which results in the confusing debug log:
"Unknown filesystem type
62656572 mounted on /sys/fs/cgroup."
Instead, if the f_type is SYSFS_MAGIC, a more accurate message is:
"No filesystem is currently mounted on /sys/fs/cgroup."
Norbert Lange [Fri, 24 Apr 2020 23:40:37 +0000 (01:40 +0200)]
Improve help for clang-format
The comments lack the most important usecase: fixing up your commits.
Frantisek Sumsal [Fri, 24 Apr 2020 10:00:44 +0000 (12:00 +0200)]
ci: introduce CIFuzz
Per-PR fuzzing provided by OSS-Fuzz using GH workflows.
See: https://google.github.io/oss-fuzz/getting-started/continuous-integration/
Thomas Haller [Fri, 24 Apr 2020 07:15:59 +0000 (09:15 +0200)]
dhcp6: make string argument to sd_dhcp6_client_set_request_mud_url() const
Zbigniew Jędrzejewski-Szmek [Fri, 24 Apr 2020 06:29:41 +0000 (08:29 +0200)]
Merge pull request #15579 from DaanDeMeyer/sd-bus-get-name/owner-creds-docs
Zbigniew Jędrzejewski-Szmek [Fri, 24 Apr 2020 06:16:22 +0000 (08:16 +0200)]
Merge pull request #15564 from poettering/tmpfiles-no-proc
util-lib: check for /proc being mounted in some really basic fs operations
Daan De Meyer [Thu, 23 Apr 2020 19:21:58 +0000 (21:21 +0200)]
sd-bus: Add sd_bus_get_name/owner_creds docs
Zbigniew Jędrzejewski-Szmek [Fri, 24 Apr 2020 05:45:07 +0000 (07:45 +0200)]
Merge pull request #15570 from poettering/cmsg-find
CMSG_FIND_DATA() and cmsg_find() work
Lennart Poettering [Fri, 17 Apr 2020 13:30:48 +0000 (15:30 +0200)]
tree-wide: use structured initialization at various places
Lennart Poettering [Thu, 23 Apr 2020 18:00:07 +0000 (20:00 +0200)]
dhcp-server: port to recvmsg_safe()
Split out of #15457, let's see if this is the culprit of the CI failure.
Lennart Poettering [Thu, 23 Apr 2020 17:53:27 +0000 (19:53 +0200)]
icmp6-util: port to recvmsg_safe()
Split out of #15457, let's see if this is the culprit of the CI failure.
Lennart Poettering [Thu, 23 Apr 2020 17:57:53 +0000 (19:57 +0200)]
dhcp-client: port to recvmsg_safe()
Split out of #15457, let's see if this is the culprit of the CI failure.
(also setting green label here, since @keszybz already greenlit it in that other PR)
Frantisek Sumsal [Thu, 23 Apr 2020 19:24:22 +0000 (21:24 +0200)]
fuzzit: make the submit phase a bit more robust
The submit phase of the Fuzzit Travis job has been spuriously failing
for some time with various (and usually pretty hidden) errors, like:
```
./fuzzit create job --type regression ...
2020/04/23 17:02:12 please set env variable FUZZIT_API_KEY or pass --api-key. API Key for you account: ...
```
```
./fuzzit create job --type regression ...
2020/04/23 11:36:53 Creating job...
2020/04/23 11:36:54 Uploading fuzzer...
2020/04/23 11:36:54 Job created successfully
2020/04/23 11:36:54 Get https://...&action=create: read tcp x.x.x.x:39674->x.x.x.x:443: read: connection reset by peer
```
```
./fuzzit create job --type regression ...
2020/04/22 18:09:15 Creating job...
2020/04/22 18:09:16 Uploading fuzzer...
2020/04/22 18:09:37 Job created successfully
2020/04/22 18:09:37 500 Internal Server Error
```
etc.
Let's retry each submit job up to three times to (hopefully) mitigate this.
Lennart Poettering [Thu, 23 Apr 2020 07:55:06 +0000 (09:55 +0200)]
nss-systemd: don't synthesize root/nobody when iterating
Fixes: #15160
Daan De Meyer [Thu, 23 Apr 2020 19:40:52 +0000 (21:40 +0200)]
sd-bus: Add sd_bus_message_get_creds docs
Daan De Meyer [Thu, 23 Apr 2020 19:07:36 +0000 (21:07 +0200)]
sd-bus: Add sd_bus_get_name_machine_id docs
Daan De Meyer [Thu, 23 Apr 2020 18:40:30 +0000 (20:40 +0200)]
sd-bus: Add sd_bus_send_to docs
Lennart Poettering [Thu, 23 Apr 2020 19:15:22 +0000 (21:15 +0200)]
Merge pull request #15566 from poettering/destroy-binfmt
unregister binary formats during shutdown
Lennart Poettering [Thu, 23 Apr 2020 11:46:10 +0000 (13:46 +0200)]
home: fix strv NUL termination
Fixes: #15559
Zbigniew Jędrzejewski-Szmek [Thu, 23 Apr 2020 18:11:14 +0000 (20:11 +0200)]
Merge pull request #15569 from DaanDeMeyer/sd-bus-message-peek-type-docs
Lennart Poettering [Thu, 23 Apr 2020 13:18:18 +0000 (15:18 +0200)]
networkd: don't do lldp rx nor tx on bond devices
Fixes: #15146
Zbigniew Jędrzejewski-Szmek [Thu, 23 Apr 2020 17:58:43 +0000 (19:58 +0200)]
Merge pull request #15550 from DaanDeMeyer/sd-bus-open/close/enter/exit-container-docs
sd-bus: Add sd_bus_open/close/enter/exit_container docs
Zbigniew Jędrzejewski-Szmek [Wed, 15 Apr 2020 18:10:39 +0000 (20:10 +0200)]
man: add a description of handling of single-label names
It turns out that our man page didn't describe the handling of single-label
names almost at all. This probably adds to the confusion regarding the subject.
So let's first describe what our current implementation is doing.
Quoting https://www.iab.org/documents/correspondence-reports-documents/2013-2/iab-statement-dotless-domains-considered-harmful/:
> Applications and platforms that apply a suffix search list to a single-label
> name are in conformance with IETF standards track RFCs. Furthermore,
> applications and platforms that do not query DNS for a TLD are in conformance
> with IETF standards track recommendations
Current behaviour is in line with that recommendation.
For #13763.
Lennart Poettering [Thu, 23 Apr 2020 17:50:36 +0000 (19:50 +0200)]
Merge pull request #15563 from keszybz/wait-callback-tweak
Add NULL callback check in one more place
Lennart Poettering [Thu, 23 Apr 2020 17:50:12 +0000 (19:50 +0200)]
Merge pull request #15561 from poettering/udev-memdup-fix
udev: nulstr NUL termination fix
Lennart Poettering [Fri, 17 Apr 2020 09:52:48 +0000 (11:52 +0200)]
socket-util: introduce type-safe, dereferencing wrapper CMSG_FIND_DATA around cmsg_find()
let's take this once step further, and add type-safety to cmsg_find(),
and imply the CMSG_DATA() macro for finding the cmsg payload.
Lennart Poettering [Fri, 17 Apr 2020 09:52:05 +0000 (11:52 +0200)]
tree-wide: use cmsg_find() helper at various places where appropriate
Daan De Meyer [Thu, 23 Apr 2020 17:37:21 +0000 (19:37 +0200)]
sd-bus: Add sd_bus_message_peek_type docs
Daan De Meyer [Wed, 22 Apr 2020 20:02:39 +0000 (22:02 +0200)]
sd-bus: Add sd_bus_message_open/close/enter/exit_container docs
Daan De Meyer [Wed, 22 Apr 2020 20:02:17 +0000 (22:02 +0200)]
sd-bus: Fix typo in sd_bus_message_append_array docs
Lennart Poettering [Thu, 23 Apr 2020 15:28:19 +0000 (17:28 +0200)]
Merge pull request #15504 from poettering/cmsg-find-pure
just the recvmsg_safe() stuff from #15457
Lennart Poettering [Thu, 23 Apr 2020 14:51:37 +0000 (16:51 +0200)]
man: document binfmt's new --unregister switch
Lennart Poettering [Thu, 23 Apr 2020 14:36:45 +0000 (16:36 +0200)]
binfmt: also unregister binfmt entries from unit
We unregister binfmt_misc twice during shutdown with this change:
1. A previous commit added support for doing that in the final shutdown
phase, i.e. when we do the aggressive umount loop. This is the robust
thing to do, in case the earlier ("clean") shutdown phase didn't work
for some reason.
2. This commit adds support for doing that when systemd-binfmt.service
is stopped. This is a good idea so that people can order mounts
before the service if they want to register binaries from such
mounts, as in that case we'll undo the registration on shutdown
again, before unmounting those mounts.
And all that, just because of that weird "F" flag the kernel introduced
that can pin files...
Fixes: #14981
Lennart Poettering [Thu, 23 Apr 2020 14:27:46 +0000 (16:27 +0200)]
binfmt: modernize code a bit
Let's just copy out the bit of the string we need, and let's make sure
we refuse rules called "status" and "register", since those are special
files in binfmt_misc's file system.
Lennart Poettering [Thu, 23 Apr 2020 14:25:53 +0000 (16:25 +0200)]
shutdown: unregister all binfmt_misc entries before entering shutdown loop
Apparently if the new "F" flag is used they might pin files, which
blocks us from unmounting things. Let's hence clear this up explicitly.
Before entering our umount loop.
Fixes: #14981
Lennart Poettering [Thu, 23 Apr 2020 14:36:06 +0000 (16:36 +0200)]
shared: add common helper for unregistering all binfmt entries
Lennart Poettering [Thu, 23 Apr 2020 15:01:11 +0000 (17:01 +0200)]
Merge pull request #15472 from keszybz/dbus-api-docs
A few more dbus api documentation updates
Lennart Poettering [Thu, 23 Apr 2020 14:01:46 +0000 (16:01 +0200)]
update TODO
Zbigniew Jędrzejewski-Szmek [Thu, 23 Apr 2020 12:53:54 +0000 (14:53 +0200)]
shared: add NULL callback check in one more place
Follow-up for
9f65637308.
Lennart Poettering [Thu, 23 Apr 2020 12:52:10 +0000 (14:52 +0200)]
tmpfiles: if we get ENOENT when opening /proc/self/fd/, check if /proc is mounted
let's return ENOSYS in that case, to make things a bit less confusng.
Previously we'd just propagate ENOENT, which people might mistake as
applying to the object being modified rather than /proc/ just not being
there.
Let's return ENOSYS instead, i.e. an error clearly indicating that some
kernel API is not available. This hopefully should put people on a
better track.
Note that we only do the procfs check in the error path, which hopefully
means it's the less likely path.
We probably can add similar bits to more suitable codepaths dealing with
/proc/self/fd, but for now, let's pick to the ones noticed in #14745.
Fixes: #14745
Lennart Poettering [Thu, 23 Apr 2020 12:51:08 +0000 (14:51 +0200)]
stat-util: add simpler helper for checking if /proc/ is mounted
Lennart Poettering [Thu, 23 Apr 2020 12:50:53 +0000 (14:50 +0200)]
stat-util: no need to open a file to check fs type
Lennart Poettering [Thu, 23 Apr 2020 12:50:07 +0000 (14:50 +0200)]
sysusers,tmpfiles: always mention error when failing to replace specifiers
Lennart Poettering [Thu, 23 Apr 2020 12:49:14 +0000 (14:49 +0200)]
sysusers: add accidentally forgotten 'return'
Zbigniew Jędrzejewski-Szmek [Wed, 22 Apr 2020 21:27:51 +0000 (23:27 +0200)]
core: fix unused variable warning when !HAVE_SECCOMP
Lennart Poettering [Thu, 23 Apr 2020 11:36:36 +0000 (13:36 +0200)]
udev: use STR_IN_SET() wher eit makes sense
Lennart Poettering [Thu, 23 Apr 2020 11:36:00 +0000 (13:36 +0200)]
udev: prepare memory for extra NUL termination for NULSTR
Fixes: #15162
Lennart Poettering [Thu, 23 Apr 2020 11:39:58 +0000 (13:39 +0200)]
Merge pull request #15543 from poettering/fix-ubsan-sd-bus
sd-bus: work around ubsan warning