]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 years agoMerge pull request #19792 from keszybz/more-logging-stuff
Yu Watanabe [Wed, 2 Jun 2021 18:36:28 +0000 (03:36 +0900)] 
Merge pull request #19792 from keszybz/more-logging-stuff

More logging tweaks

2 years agoMerge pull request #19791 from yuwata/udev-node-logs
Yu Watanabe [Wed, 2 Jun 2021 16:32:29 +0000 (01:32 +0900)] 
Merge pull request #19791 from yuwata/udev-node-logs

udev: update several log messages

2 years agopo: Translated using Weblate (Danish)
scootergrisen [Wed, 2 Jun 2021 16:03:12 +0000 (18:03 +0200)] 
po: Translated using Weblate (Danish)

Currently translated at 100.0% (189 of 189 strings)

Co-authored-by: scootergrisen <scootergrisen@gmail.com>
Translate-URL: https://translate.fedoraproject.org/projects/systemd/master/da/
Translation: systemd/main

2 years agoMerge pull request #19783 from yuwata/efi-build-options
Luca Boccassi [Wed, 2 Jun 2021 16:02:57 +0000 (17:02 +0100)] 
Merge pull request #19783 from yuwata/efi-build-options

efi: constify several functions and enable more warnings

2 years agovarious: don't say that the timestamp 'changed' on initial load 19792/head
Zbigniew Jędrzejewski-Szmek [Tue, 1 Jun 2021 15:40:51 +0000 (17:40 +0200)] 
various: don't say that the timestamp 'changed' on initial load

I always found this a bit annoying.
With the patch:

$ SYSTEMD_LOG_LEVEL=debug build/udevadm test /sys/class/block/dm-1
...
Loaded timestamp for '/etc/systemd/network'.
Loaded timestamp for '/usr/lib/systemd/network'.
Parsed configuration file /usr/lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/10-eth0.link
Created link configuration context.
Loaded timestamp for '/etc/udev/rules.d'.
Loaded timestamp for '/usr/lib/udev/rules.d'.
...

2 years agoudev: upgrade log level about failure in updating devlinks 19791/head
Yu Watanabe [Wed, 2 Jun 2021 10:26:29 +0000 (19:26 +0900)] 
udev: upgrade log level about failure in updating devlinks

2 years agoudev: check that passed symbolic link path starts with /dev
Yu Watanabe [Wed, 2 Jun 2021 10:25:53 +0000 (19:25 +0900)] 
udev: check that passed symbolic link path starts with /dev

2 years agoMerge pull request #19779 from poettering/unit-name-length-tweak
Luca Boccassi [Wed, 2 Jun 2021 10:32:52 +0000 (11:32 +0100)] 
Merge pull request #19779 from poettering/unit-name-length-tweak

improve logging when encountering mount points we cannot convert to unit names due to length

2 years agoudev: explicitly mention that the error will be ignored
Yu Watanabe [Wed, 2 Jun 2021 10:14:12 +0000 (19:14 +0900)] 
udev: explicitly mention that the error will be ignored

See #19788.

2 years agoudev: ignore the case that the device is already removed
Yu Watanabe [Wed, 2 Jun 2021 10:10:49 +0000 (19:10 +0900)] 
udev: ignore the case that the device is already removed

See #19788.

2 years agocryptsetup: fix typo
Yu Watanabe [Wed, 2 Jun 2021 07:37:19 +0000 (16:37 +0900)] 
cryptsetup: fix typo

2 years agocore: show manager version in dump
Zbigniew Jędrzejewski-Szmek [Tue, 1 Jun 2021 14:46:53 +0000 (16:46 +0200)] 
core: show manager version in dump

This makes it easier to not get lost which one is which when
comparing two dumps.

2 years agocore: split out core/manager-dump.[ch]
Zbigniew Jędrzejewski-Szmek [Tue, 1 Jun 2021 13:25:44 +0000 (15:25 +0200)] 
core: split out core/manager-dump.[ch]

This is a fairly specialized topic, let's create a separate file for it.

2 years agoTODO: add entry about alias logging
Zbigniew Jędrzejewski-Szmek [Tue, 1 Jun 2021 10:56:33 +0000 (12:56 +0200)] 
TODO: add entry about alias logging

2 years agovarlink: remove duplicated "varlink:" prefix
Zbigniew Jędrzejewski-Szmek [Tue, 1 Jun 2021 08:00:01 +0000 (10:00 +0200)] 
varlink: remove duplicated "varlink:" prefix

We had:

systemd[1]: varlink-36: New incoming message: {"method":"io.systemd.UserDatabase.GetMemberships","parameters":{"userName":"gdm","service":"io.systemd.DynamicUser"},"more":true}
systemd[1]: varlink-36: varlink: changing state idle-server → processing-method-more
systemd[1]: varlink-36: Sending message: {"error":"io.systemd.UserDatabase.NoRecordFound","parameters":{}}
systemd[1]: varlink-36: varlink: changing state processing-method-more → processed-method
systemd[1]: varlink-36: varlink: changing state processed-method → idle-server
systemd[1]: varlink-36: Got POLLHUP from socket.
systemd[1]: varlink-36: varlink: changing state idle-server → pending-disconnect
systemd[1]: varlink-36: varlink: changing state pending-disconnect → processing-disconnect
systemd[1]: varlink-36: varlink: changing state processing-disconnect → disconnected

So let's drop the "varlink:" prefix and use capitalized sentences like in other messages.

2 years agovarlink: say "varlink:" instead of "n/a:" when no description is available
Zbigniew Jędrzejewski-Szmek [Tue, 1 Jun 2021 07:55:09 +0000 (09:55 +0200)] 
varlink: say "varlink:" instead of "n/a:" when no description is available

For new connections, we log something like this:

systemd[1]: n/a: New incoming connection.
systemd[1]: n/a: Connections of user 997: 0 (of 1024 max)
systemd[1]: varlink-22: varlink: setting state idle-server
systemd[1]: varlink-22: New incoming message: ...

This "n/a" is not very pretty, and without context it would be hard to even
figure out this is a varlink connection.

2 years agomeson: sort compiler flags 19783/head
Yu Watanabe [Wed, 2 Jun 2021 06:53:29 +0000 (15:53 +0900)] 
meson: sort compiler flags

2 years agomeson: enable more warnings when building efi binary
Yu Watanabe [Wed, 2 Jun 2021 06:49:44 +0000 (15:49 +0900)] 
meson: enable more warnings when building efi binary

2 years agoefi: constify several arguments of functions which handle loader entries
Yu Watanabe [Wed, 2 Jun 2021 06:45:47 +0000 (15:45 +0900)] 
efi: constify several arguments of functions which handle loader entries

2 years agoefi: drop const qualifiers from arguments in uefi_call_wrapper()
Yu Watanabe [Wed, 2 Jun 2021 06:43:21 +0000 (15:43 +0900)] 
efi: drop const qualifiers from arguments in uefi_call_wrapper()

2 years agoefi: add const qualifier to EFI variable handling functions
Yu Watanabe [Wed, 2 Jun 2021 06:41:39 +0000 (15:41 +0900)] 
efi: add const qualifier to EFI variable handling functions

2 years agoefi: add const qualifier to string utils
Yu Watanabe [Wed, 2 Jun 2021 06:40:56 +0000 (15:40 +0900)] 
efi: add const qualifier to string utils

2 years agoefi: include endian.h to handle endian correctly
Yu Watanabe [Wed, 2 Jun 2021 06:38:29 +0000 (15:38 +0900)] 
efi: include endian.h to handle endian correctly

The macro __BYTE_ORDER__ is defined in endian.h.

2 years agoefi: do not use _STRING_ARCH_unaligned macro
Yu Watanabe [Wed, 2 Jun 2021 06:36:26 +0000 (15:36 +0900)] 
efi: do not use _STRING_ARCH_unaligned macro

It is already removed from glibc. See,
https://sourceware.org/git/?p=glibc.git;a=commit;h=16396c41deab45f715ffd813280d9d685b3b281e
https://sourceware.org/git/?p=glibc.git;a=commit;h=09a596cc2cf4e0f9f8e9f3bba4b1a97efcb13bcb

2 years agostring-util: trivial optimizations for strverscmp_improved()
Yu Watanabe [Tue, 1 Jun 2021 08:58:56 +0000 (17:58 +0900)] 
string-util: trivial optimizations for strverscmp_improved()

2 years agomount: be more descriptive when logging about overly long mount point paths 19779/head
Lennart Poettering [Tue, 1 Jun 2021 20:26:49 +0000 (22:26 +0200)] 
mount: be more descriptive when logging about overly long mount point paths

This is prompted by #17684: let's very explicitly say that the name is
too long for us, and that we'll ignore it.

2 years agocore: when looping over mount/swap names, continue if we find one which doesn't trans...
Lennart Poettering [Tue, 1 Jun 2021 20:20:55 +0000 (22:20 +0200)] 
core: when looping over mount/swap names, continue if we find one which doesn't translate to a valid unit name

2 years agounit-name: generate a clear error code when converting an overly long fs path to...
Lennart Poettering [Tue, 1 Jun 2021 17:43:55 +0000 (19:43 +0200)] 
unit-name: generate a clear error code when converting an overly long fs path to a unit name

2 years agodissect: if dissecting without udev, don't look for usec timestamp on db record
Lennart Poettering [Tue, 1 Jun 2021 15:17:37 +0000 (17:17 +0200)] 
dissect: if dissecting without udev, don't look for usec timestamp on db record

There will likely be none, hence don't bother.

This fixes an issue in systemd-gpt-auto-generator where we'll try to
wait for the udev db for the partitions even though though udev might
simplynot be around and via the DISSECT_IMAGE_NO_UDEV flag were
explicitly told not to bother.

Fixes: #19377
2 years agopam: do not require a non-expired password for user@.service
Zbigniew Jędrzejewski-Szmek [Tue, 1 Jun 2021 14:17:16 +0000 (16:17 +0200)] 
pam: do not require a non-expired password for user@.service

Without this parameter, we would allow user@ to start if the user
has no password (i.e. the password is "locked"). But when the user does have a password,
and it is marked as expired, we would refuse to start the service.
There are other authentication mechanisms and we should not tie this service to
the password state.

The documented way to disable an *account* is to call 'chage -E0'. With a disabled
account, user@.service will still refuse to start:

systemd[16598]: PAM failed: User account has expired
systemd[16598]: PAM failed: User account has expired
systemd[16598]: user@1005.service: Failed to set up PAM session: Operation not permitted
systemd[16598]: user@1005.service: Failed at step PAM spawning /usr/lib/systemd/systemd: Operation not permitted
systemd[1]: user@1005.service: Main process exited, code=exited, status=224/PAM
systemd[1]: user@1005.service: Failed with result 'exit-code'.
systemd[1]: Failed to start user@1005.service.
systemd[1]: Stopping user-runtime-dir@1005.service...

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1961746.

2 years agoMerge pull request #19774 from poettering/tpm2-tweaks
Lennart Poettering [Tue, 1 Jun 2021 17:27:06 +0000 (19:27 +0200)] 
Merge pull request #19774 from poettering/tpm2-tweaks

cryptsetup: two minor tpm2 tweaks

2 years agologind-dbus: correctly calculate when to create /etc/nologin file in all cases
Lennart Poettering [Tue, 1 Jun 2021 14:46:40 +0000 (16:46 +0200)] 
logind-dbus: correctly calculate when to create /etc/nologin file in all cases

Fixes: #19258
2 years agocryptsetup: add missing error branch
Lennart Poettering [Tue, 1 Jun 2021 14:17:24 +0000 (16:17 +0200)] 
cryptsetup: add missing error branch

Found in the process of trying to figure out #19193, but I doubt it's
going to fix that.

2 years agocryptsetup: don't bother waiting for TPM2 devices if we are on EFI and EFI says there... 19774/head
Lennart Poettering [Tue, 1 Jun 2021 14:35:13 +0000 (16:35 +0200)] 
cryptsetup: don't bother waiting for TPM2 devices if we are on EFI and EFI says there is no TPM2 device

Note that this means EFI-systems with a manually added TPM device won't
be supported automatically, but given that the TPM2 trust model kinda
requires firmware support I doubt it matters supporting this. And in all
other cases it speeds things up a bit.

2 years agocryptsetup: if TPM2 support is not compiled in, fallback to non-TPM2 mode gracefully
Lennart Poettering [Tue, 1 Jun 2021 14:34:34 +0000 (16:34 +0200)] 
cryptsetup: if TPM2 support is not compiled in, fallback to non-TPM2 mode gracefully

Fixes: #19177
2 years agoMerge pull request #19768 from poettering/homectl-fido2-lock-with
Lennart Poettering [Tue, 1 Jun 2021 13:53:36 +0000 (15:53 +0200)] 
Merge pull request #19768 from poettering/homectl-fido2-lock-with

homed: catch up with FIDO2 features in cryptsetup + other fixes

2 years agocryptsetup-util: disable pbkdf benchmark in cryptsetup_set_minimal_pbkdf.
Ondrej Kozina [Thu, 27 May 2021 06:43:18 +0000 (08:43 +0200)] 
cryptsetup-util: disable pbkdf benchmark in cryptsetup_set_minimal_pbkdf.

No need to benchmark pbkdf when asking for minimal values
anyway.

1000 iterations count is minimum for both LUKS1 and LUKS2
pbkdf2 keyslot parameters according to NIST SP 800-132, ch. 5.2.

Iterations count can not be lower than recommended minimum
when benchmark is disabled. The time_ms member is ignored with
benchmark disabled.

2 years agodissect: the libcryptsetup code for Verity crypt_device objects too 19768/head
Lennart Poettering [Tue, 1 Jun 2021 11:19:23 +0000 (13:19 +0200)] 
dissect: the libcryptsetup code for Verity crypt_device objects too

Across the codebase we are pretty good at setting the per-crypt_device
log functions once we allocated the object. But we forgot one case. Fix
that.

2 years agocryptsetup: explicitl set default log functions wherever needed
Lennart Poettering [Tue, 1 Jun 2021 11:16:47 +0000 (13:16 +0200)] 
cryptsetup: explicitl set default log functions wherever needed

Code using libcryptsetup already sets the global log function if it uses
dlopen_cryptsetup(). Make sure we do the same for the three programs
that explicitly link against libcryptsetup and hence to not use
dlopen_cryptsetup().

2 years agocryptsetup: implicitly set global log functions when loading libcryptsetup dynamically
Lennart Poettering [Tue, 1 Jun 2021 11:11:48 +0000 (13:11 +0200)] 
cryptsetup: implicitly set global log functions when loading libcryptsetup dynamically

So far we only set the per-crypt_device log functions, but some
libcryptsetup calls we invoke without a crypt_device objects, and we
want those to redirect to our infra too.

2 years agohomework: only default to LUKS storage if libcryptsetup is installed
Lennart Poettering [Mon, 31 May 2021 20:55:08 +0000 (22:55 +0200)] 
homework: only default to LUKS storage if libcryptsetup is installed

2 years agohomework: make libcryptsetup dep runtime optional
Lennart Poettering [Mon, 31 May 2021 20:50:44 +0000 (22:50 +0200)] 
homework: make libcryptsetup dep runtime optional

2 years agohomework: fix return codes when using fido2/pkcs11 cached passwords
Lennart Poettering [Mon, 31 May 2021 20:15:48 +0000 (22:15 +0200)] 
homework: fix return codes when using fido2/pkcs11 cached passwords

Otherwise we'll accidently report a record we can safely decrypt as not
decrypted.

2 years agouserdb: make most loading of JSON user record data "permissive"
Lennart Poettering [Mon, 31 May 2021 19:55:44 +0000 (21:55 +0200)] 
userdb: make most loading of JSON user record data "permissive"

We want user records to be extensible, hence we shouldn't complain about
fields we can't parse. In particular we want them to be extensible for
our own future extensions.

Some code already turned the permissive flag when parsing the JSON data,
but most did not. Fix that. A few select cases remain where the bit is
not set: where we just gnerated the JSON data ourselves, and thus can be
reasonably sure that if we can't parse it it's our immediate programming
error and not just us processing a user record from some other tool or a
newer version of ourselves.

2 years agohomectl: store FIDO2 up/uv/clientPin fields in user records too
Lennart Poettering [Fri, 28 May 2021 16:18:54 +0000 (18:18 +0200)] 
homectl: store FIDO2 up/uv/clientPin fields in user records too

This catches up homed's FIDO2 support with cryptsetup's: we'll now store
the uv/up/clientPin configuration at enrollment in the user record JSON
data, and use it when authenticating with it.

This also adds explicit "uv" support: we'll only allow it to happen when
the client explicity said it's OK. This is then used by clients to print
a nice message suggesting "uv" has to take place before retrying
allowing it this time. This is modelled after the existing handling for
"up".

2 years agoMerge pull request #17096 from eworm-de/ask-password
Lennart Poettering [Tue, 1 Jun 2021 09:44:00 +0000 (11:44 +0200)] 
Merge pull request #17096 from eworm-de/ask-password

ask-password: allow to control emoji

2 years agoMerge pull request #19766 from keszybz/fuzz-fixes
Yu Watanabe [Tue, 1 Jun 2021 02:14:45 +0000 (11:14 +0900)] 
Merge pull request #19766 from keszybz/fuzz-fixes

Fuzz fixes

2 years agoudevadm: output trigger UUID in UUID format, instead of ID128
Lennart Poettering [Mon, 31 May 2021 20:56:02 +0000 (22:56 +0200)] 
udevadm: output trigger UUID in UUID format, instead of ID128

The SYNTH_UUID property also shows it in UUID format, and so does the
kernel and its docs otherwise, hence accept our fate and also output it
in UUID.

2 years agoMerge pull request #19765 from keszybz/early-boot-logging-improvements
Luca Boccassi [Mon, 31 May 2021 21:59:51 +0000 (22:59 +0100)] 
Merge pull request #19765 from keszybz/early-boot-logging-improvements

Early boot logging improvements

2 years agoask-password: use FLAGS_SET() 17096/head
Christian Hesse [Thu, 27 May 2021 10:26:36 +0000 (12:26 +0200)] 
ask-password: use FLAGS_SET()

Check for flags with FLAGS_SET() where possible.

2 years agoask-password: allow to control lock and key emoji
Christian Hesse [Wed, 26 May 2021 20:38:30 +0000 (22:38 +0200)] 
ask-password: allow to control lock and key emoji

Giving --echo to systemd-ask-password allows to echo the user input.
There's nothing secret, so do not show a lock and key emoji by default.

The behavior can be controlled with --emoji=yes|no|auto. The default is
auto, which defaults to yes, unless --echo is given.

2 years agofuzz-journal-remote: print some kinds of errors 19766/head
Zbigniew Jędrzejewski-Szmek [Mon, 31 May 2021 10:05:29 +0000 (12:05 +0200)] 
fuzz-journal-remote: print some kinds of errors

In https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=34803, we fail with:

  Assertion 'IN_SET(r, -ENOMEM, -EMFILE, -ENFILE)' failed at src/journal-remote/fuzz-journal-remote.c:69,
    function int LLVMFuzzerTestOneInput(const uint8_t *, size_t)(). Aborting.
  AddressSanitizer:DEADLYSIGNAL

Let's try to print the error, so maybe we can see what is going on.
With the previous commit we shouldn't print out anything.

2 years agojournal-remote: downgrade messages about input data to warnings
Zbigniew Jędrzejewski-Szmek [Mon, 31 May 2021 10:11:48 +0000 (12:11 +0200)] 
journal-remote: downgrade messages about input data to warnings

Those are unexpected, so a user-visible message seems appropriate.
But they are not our errors, and to some extent we can recover from
them, so "warning" seems more appropriate than "error".

2 years agosystemctl: unset const char* arguments in static destructors
Zbigniew Jędrzejewski-Szmek [Mon, 31 May 2021 09:23:20 +0000 (11:23 +0200)] 
systemctl: unset const char* arguments in static destructors

When fuzzing, the following happens:
- we parse 'data' and produce an argv array,
- one of the items in argv is assigned to arg_host,
- the argv array is subsequently freed by strv_freep(), and arg_host has a dangling symlink.

In normal use, argv is static, so arg_host can never become a dangling pointer.
In fuzz-systemctl-parse-argv, if we repeatedly parse the same array, we
have some dangling pointers while we're in the middle of parsing. If we parse
the same array a second time, at the end all the dangling pointers will have been
replaced again. But for a short time, if parsing one of the arguments uses another
argument, we would use a dangling pointer.

Such a case occurs when we have --host=… --boot-loader-entry=help. The latter calls
acquire_bus() which uses arg_host.

I'm not particularly happy with making the code more complicated just for
fuzzing, but I think it's better to resolve this, even if the issue cannot
occur in normal invocations, than to deal with fuzzer reports.

Should fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31714.

2 years agopid1: remove dot from initial announcement 19765/head
Zbigniew Jędrzejewski-Szmek [Sun, 23 May 2021 07:20:47 +0000 (09:20 +0200)] 
pid1: remove dot from initial announcement

This line is so long, that the end is usually not visible on
the terminal. The dot looks out of place, and dropping it saves one
column for more interesting content.

2 years agotty-ask-password-agent: log when starting a query on the console
Zbigniew Jędrzejewski-Szmek [Sun, 23 May 2021 08:06:38 +0000 (10:06 +0200)] 
tty-ask-password-agent: log when starting a query on the console

When looking at logs from a boot with an encrypted device, I see
(with unrelevant messages snipped):
[    2.751692] systemd[1]: Started Dispatch Password Requests to Console.
[    7.929199] systemd-cryptsetup[258]: Set cipher aes, mode xts-plain64, key size 512 bits for device /dev/disk/by-uuid/2d9b648a-15b1-4204-988b-ec085089f8ce.
[    9.499483] systemd[1]: Finished Cryptography Setup for luks-2d9b648a-15b1-4204-988b-ec085089f8ce.

There is a hug gap in timing without any explanatory message. If I didn't type
in the password, there would be no way to figure out why things blocked from
this log, so let's log something to the log too.

2 years agotty-ask-password-agent: highlight summary in help
Zbigniew Jędrzejewski-Szmek [Sun, 23 May 2021 07:54:41 +0000 (09:54 +0200)] 
tty-ask-password-agent: highlight summary in help

2 years agotty-ask-password-agent: mention optional argument in help
Zbigniew Jędrzejewski-Szmek [Sun, 23 May 2021 07:52:56 +0000 (09:52 +0200)] 
tty-ask-password-agent: mention optional argument in help

0cf84693877f060254f04cf38120f52c2aa3059c added --console.
6af621248f2255f9ce50b0bafdde475305dc4e57 added an optional argument, but didn't
update the help texts.

Note that there is no ambiguity with the optional argument because no positional
arguments are allowed.

2 years agoRespect option 'silent' on cryptsetup FIDO2 pin entry
Sebastian Blunt [Sun, 30 May 2021 20:23:01 +0000 (13:23 -0700)] 
Respect option 'silent' on cryptsetup FIDO2 pin entry

Makes the silent flags behavior consistent between regular password
entry and FIDO2 pin entry.

2 years agosystemctl: put static destructor in the order of variables
Zbigniew Jędrzejewski-Szmek [Mon, 31 May 2021 09:12:16 +0000 (11:12 +0200)] 
systemctl: put static destructor in the order of variables

2 years agoMerge pull request #19759 from poettering/emoji-token-text
Yu Watanabe [Sat, 29 May 2021 04:42:48 +0000 (13:42 +0900)] 
Merge pull request #19759 from poettering/emoji-token-text

fido2: add emoji to log message whenever "up" or "uv" is requested

2 years agocryptenroll: remove a tiny bit of whitespace 19759/head
Lennart Poettering [Fri, 28 May 2021 20:46:48 +0000 (22:46 +0200)] 
cryptenroll: remove a tiny bit of whitespace

2 years agofido2: add emoji to log message whenever "up" or "uv" is requested
Lennart Poettering [Fri, 28 May 2021 16:38:42 +0000 (18:38 +0200)] 
fido2: add emoji to log message whenever "up" or "uv" is requested

Let's show the touch emoji whenever the user is likely going to have to
interact with the security token. We had this at many but not all such
messages. Let's add it everywhere.

Also, upgrade all messages where the user is supposed to do something to
LOG_NOTICE. Previously some where at LOG_NOTICE and others at LOG_INFO.
These messages are more than informational after all, they require user
action, hence deserve the higher prio, in particular as that formats
them bold with our usual log coloring.

Always use the word "test" in log messages, instead of "check".

Finally, always use the same wording: "confirm presence on security
token" for "up" and "verify user on security token" for "uv"

2 years agoMerge pull request #19756 from poettering/fido2-enroll-tweaks
Lennart Poettering [Fri, 28 May 2021 16:20:15 +0000 (18:20 +0200)] 
Merge pull request #19756 from poettering/fido2-enroll-tweaks

further tweaks to fido2 code

2 years agoman: document that FIDO2 uv/up/clientPin feature support is now handled gracefully 19756/head
Lennart Poettering [Fri, 28 May 2021 14:45:12 +0000 (16:45 +0200)] 
man: document that FIDO2 uv/up/clientPin feature support is now handled gracefully

2 years agocryptsetup: revert to systemd 248 up/pin/uv FIDO2 settings when we don't have LUKS2...
Lennart Poettering [Thu, 27 May 2021 20:55:39 +0000 (22:55 +0200)] 
cryptsetup: revert to systemd 248 up/pin/uv FIDO2 settings when we don't have LUKS2 JSON data telling us the precise configuration

Let's improve compatibility with systemd 248 enrollments of FIDO2 keys:
if we have no information about the up/uv/pin settings, let's try to
determine them automatically, i.e. use up and pin if needed.

This only has an effect on LUKS2 volumes where a FIDO2 key was enrolled
with systemd 248 and thus the JSON data lacks the up/uv/pin fields. It
also matters if the user configured FIDO2 parameters explicitly via
crypttab options, so that the JSON data is not used.

For newer enrollments we'll stick to the explicit settings, as that's
generally much safer and robust.

2 years agofido2: properly handle case when no PINs are specified during auth
Lennart Poettering [Thu, 27 May 2021 20:06:25 +0000 (22:06 +0200)] 
fido2: properly handle case when no PINs are specified during auth

Also, drop redundant check for has_client_pin, which can never happen,
since we already filtered this case a bit further up.

2 years agofido2: make misadvertised clientPin feature fatal
Lennart Poettering [Thu, 27 May 2021 20:59:18 +0000 (22:59 +0200)] 
fido2: make misadvertised clientPin feature fatal

We need really need to trust the feature set, since we are about to set
it in stone storing the result in JSON, hence react a bit more allergic
about token that misadvertise the feature.

Note that I added this to be defensive, I am not aware any token that
actually misadvertises this. hence it should be safe to make this fatal,
and should this not work we can always revisit things.

2 years agocryptenroll: handle FIDO2 tokens gracefully that lack requested features
Lennart Poettering [Thu, 27 May 2021 16:47:48 +0000 (18:47 +0200)] 
cryptenroll: handle FIDO2 tokens gracefully that lack requested features

Let's try to handle keys gracefully that do not implement all features
we ask for: simply turn the feature off, and continue.

This is in particular relevant since we enroll with PIN and UP by
default, and on devices that don't support that we should just work.

Replaces: #18509

2 years agoMerge pull request #19754 from yuwata/fix-coverity-issues-and-typo
Yu Watanabe [Fri, 28 May 2021 14:03:01 +0000 (23:03 +0900)] 
Merge pull request #19754 from yuwata/fix-coverity-issues-and-typo

Fix coverity issues and typo

2 years agotree-wide: fix typo 19754/head
Yu Watanabe [Fri, 28 May 2021 10:52:12 +0000 (19:52 +0900)] 
tree-wide: fix typo

2 years agobasic/unit-file: fix use-after-free
Yu Watanabe [Fri, 28 May 2021 10:48:33 +0000 (19:48 +0900)] 
basic/unit-file: fix use-after-free

This fixes a bug introduced by e8630e695232bdfcd16b55f3faafb4329c961104.

Fixes CID#1453292.

2 years agonetwork,sd-hwdb: voidify fchmod()
Yu Watanabe [Fri, 28 May 2021 10:41:03 +0000 (19:41 +0900)] 
network,sd-hwdb: voidify fchmod()

Fixes CID#1453294.

2 years agopath-util: add missing varargs cleanup
Yu Watanabe [Fri, 28 May 2021 10:38:34 +0000 (19:38 +0900)] 
path-util: add missing varargs cleanup

Fixes CID#1453293.

2 years agoMerge pull request #19485 from yuwata/path-util
Lennart Poettering [Fri, 28 May 2021 07:31:06 +0000 (09:31 +0200)] 
Merge pull request #19485 from yuwata/path-util

path-util: introduce several path utilities and handle "." more gracefully

2 years agopath-util: make path_simplify() use path_find_first_component() 19485/head
Yu Watanabe [Tue, 4 May 2021 07:00:41 +0000 (16:00 +0900)] 
path-util: make path_simplify() use path_find_first_component()

2 years agotree-wide: always drop unnecessary dot in path
Yu Watanabe [Sat, 8 May 2021 08:43:49 +0000 (17:43 +0900)] 
tree-wide: always drop unnecessary dot in path

2 years agopath-util: make path_extract_filename/directory() handle "." gracefully
Yu Watanabe [Tue, 4 May 2021 05:40:56 +0000 (14:40 +0900)] 
path-util: make path_extract_filename/directory() handle "." gracefully

This makes the functions handle "xx/" and "xx/." as equivalent.
Moreover, now path_extract_directory() returns normalized path, that is
no redundant "/" or "/./" are contained.

2 years agopath-util: introduce path_find_last_component()
Yu Watanabe [Mon, 3 May 2021 14:47:57 +0000 (23:47 +0900)] 
path-util: introduce path_find_last_component()

2 years agopath-util: use path_equal() in empty_or_root()
Yu Watanabe [Mon, 3 May 2021 14:46:47 +0000 (23:46 +0900)] 
path-util: use path_equal() in empty_or_root()

2 years agofs-util: make chase_symlinks() use path_find_first_component()
Yu Watanabe [Sun, 2 May 2021 16:24:11 +0000 (01:24 +0900)] 
fs-util: make chase_symlinks() use path_find_first_component()

The previous commit about path_compare() breaks chase_symlinks().
This commit fixes it.

2 years agopath-util: make path_compare() and path_hash_func() ignore "."
Yu Watanabe [Sat, 1 May 2021 21:39:55 +0000 (06:39 +0900)] 
path-util: make path_compare() and path_hash_func() ignore "."

This also makes path_compare() may return arbitrary integer as it now
simply pass the result of strcmp() or memcmp().

This changes the behavior of path_extract_filename/directory() when
e.g. "/." or "/./" are input. But the change should be desired.

2 years agopath-util: use path_find_first_component() in path_make_relative()
Yu Watanabe [Sat, 1 May 2021 20:53:14 +0000 (05:53 +0900)] 
path-util: use path_find_first_component() in path_make_relative()

This also makes the function checks the result is a valid path or not.

2 years agopath-util: use path_find_first_component() in path_startswith()
Yu Watanabe [Sat, 1 May 2021 11:17:16 +0000 (20:17 +0900)] 
path-util: use path_find_first_component() in path_startswith()

This makes path_startswith() stricter. If one of the path component in
arguments is longer than NAME_MAX, it returns NULL.

2 years agopath-util: use path_is_safe() in path_is_normalized()
Yu Watanabe [Fri, 30 Apr 2021 17:55:20 +0000 (02:55 +0900)] 
path-util: use path_is_safe() in path_is_normalized()

2 years agopath-util: introduce path_is_safe()
Yu Watanabe [Fri, 30 Apr 2021 17:37:31 +0000 (02:37 +0900)] 
path-util: introduce path_is_safe()

The function is similar to path_is_valid(), but it refuses paths which
contain ".." component.

2 years agopath-util: use path_find_first_component() in path_is_valid()
Yu Watanabe [Fri, 30 Apr 2021 17:30:15 +0000 (02:30 +0900)] 
path-util: use path_find_first_component() in path_is_valid()

2 years agopath-util: introduce path_find_first_component()
Yu Watanabe [Fri, 30 Apr 2021 16:57:28 +0000 (01:57 +0900)] 
path-util: introduce path_find_first_component()

The function may be useful to iterate on each path component.

2 years agopath-util: fix off by one issue to detect slash at the end in path_extend()
Yu Watanabe [Fri, 28 May 2021 04:38:31 +0000 (13:38 +0900)] 
path-util: fix off by one issue to detect slash at the end in path_extend()

2 years agotest/networkd-test: in bridge test, wait for online after restart systemd-networkd
Dan Streetman [Mon, 24 May 2021 23:41:25 +0000 (19:41 -0400)] 
test/networkd-test: in bridge test, wait for online after restart systemd-networkd

without waiting for online, there is a race condition between systemd-networkd
actually setting the new values and the test checking those values

This also sets the link down before restarting systemd-networkd, to avoid
the wait for online being a no-op

2 years agomeson: Correctly validate that prefix is a child of rootprefix
Peter Kjellerstedt [Thu, 27 May 2021 15:05:34 +0000 (17:05 +0200)] 
meson: Correctly validate that prefix is a child of rootprefix

In commit d895e10a a test was introduced to validate that prefix is a
child of rootprefix. However, it only works when rootprefix is "/".
Since the test is ignored when rootprefix is equal to prefix, this is
only noticed if specifying both -Drootprefix= and -Dprefix=, e.g.:

  $ meson foo -Drootprefix=/foo -Dprefix=/foo/bar
  meson.build:111:8: ERROR: Problem encountered: Prefix is not below
  root prefix (now rootprefix=/foo prefix=/foo/bar)

2 years agoMerge pull request #19749 from poettering/path-extend
Yu Watanabe [Thu, 27 May 2021 20:53:57 +0000 (05:53 +0900)] 
Merge pull request #19749 from poettering/path-extend

add path_extend() helper which is a like if path_join() and strextend() had a baby

2 years agotree-wide: make use of path_extend() at many places 19749/head
Lennart Poettering [Thu, 27 May 2021 14:27:06 +0000 (16:27 +0200)] 
tree-wide: make use of path_extend() at many places

This is not a comprehensive port, but mostly some low-hanging fruit.

2 years agopath-util: add path_extend(), inspired by strextend(), but using path_join()
Lennart Poettering [Thu, 27 May 2021 14:01:20 +0000 (16:01 +0200)] 
path-util: add path_extend(), inspired by strextend(), but using path_join()

2 years agoMerge pull request #19703 from yuwata/network-ndisc-valid-time
Yu Watanabe [Thu, 27 May 2021 09:42:31 +0000 (18:42 +0900)] 
Merge pull request #19703 from yuwata/network-ndisc-valid-time

network: ndisc: always honor valid time

2 years agoMerge pull request #19743 from yuwata/dhcpv4-static-leases
Yu Watanabe [Thu, 27 May 2021 09:41:22 +0000 (18:41 +0900)] 
Merge pull request #19743 from yuwata/dhcpv4-static-leases

network: dhcp-server:  support static lease

2 years agonetwork: ndisc: update log message 19703/head
Yu Watanabe [Thu, 20 May 2021 11:50:36 +0000 (20:50 +0900)] 
network: ndisc: update log message

2 years agonetwork: ndisc: always honor valid time
Yu Watanabe [Thu, 20 May 2021 11:49:29 +0000 (20:49 +0900)] 
network: ndisc: always honor valid time

See draft-ietf-6man-slaac-renum-02, section 4.2.
https://datatracker.ietf.org/doc/html/draft-ietf-6man-slaac-renum#section-4.2

Replaces #15260.

2 years agotest-network: add a testcase for DHCP static lease 19743/head
borna-blazevic [Thu, 27 May 2021 05:50:19 +0000 (14:50 +0900)] 
test-network: add a testcase for DHCP static lease

2 years agonetwork: dhcp-server: introduce [DHCPServerStaticLease] section
borna-blazevic [Tue, 20 Oct 2020 19:46:15 +0000 (21:46 +0200)] 
network: dhcp-server: introduce [DHCPServerStaticLease] section