| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Fixes: #27260
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
acquire_encrypted_credential_directory()
Let's unify these very similar functions, and port them to the new
mount_credentials_fs() call.
While we are at it, if we detect that the credentials dir already is a
mount point, remount it writable so that we can actually write to it.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Let's add two new helpers: mount_credentials_fs() and
credentials_fs_mount_flags(). The former mounts a file system suitable
for storing of unencrypted credentials at runtime (i.e. a ramfs or
tmpfs). The latter determines the right mount flags to use for such a
mount.
Both functions mostly just take code from execute.c, but make two
changes:
1. If the kernel supports it we'll use a tmpfs with the new "noswap"
mount option instead of ramfs. Was added in kernel 6.4, hence is very
recent, but tmpfs is so much less crappy than ramfs, hence worth it.
2. We'll set MS_NOSYMFOLLOW on the mounts if supported. These file
systems should only contain regulra files, hence no need to allow
symlinks.
|
| | |
| | |
| | |
| | |
| | | |
Let's make things easier to debug: provide an overview what has been
passed, during boot.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Let's hook up one more thing with credentials: the machine ID to use
when none is initialized yet.
This requires some reordering of initialization steps in PID 1: we need
to import credentials first, and only then initialize the machine ID.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now that we have the infra in place, make PID 1 pick up encrypted
credentials too.
(While we are at it, split this out into its own helper)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is just like read_credential() but also looks into the encrypted
credential directory, not just the regular one.
Normally, we decrypt credentials at the moment we pass them to services.
From service PoV all credentials are hence decrypted credentials.
However, when we want to access credentials in a generator this logic
does not apply: here we have the regular and the encrypted credentials
directory. So far we didn't attempt to make use of credentials in
generators hence.
Let's address and add helper that looks into both directories, and talks
to the TPM if necessary to decrypt the credentials.
|
| | |
| | |
| | |
| | | |
credentials to host
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When the credential dir is backed by an fs that supports ACLs we must be
more careful with adjusting the 'x' bit of the directory, as any chmod()
call on the dir will reset the mask entry of the ACL entirely which we
don't want. Hence, do a manual set of ACL changes, that only add/drop
the 'x' bit but otherwise leave the ACL as it is.
This matters if we use tmpfs rather than ramfs to store credentials.
|
| |/ |
|
|\ \
| |/
|/| |
repart: fix free area calculation
|
| |
| |
| |
| |
| |
| |
| | |
Like fdisk_get_last_lba(), fdisk_partition_get_end() return the last
sector in the partition.
Fixes #28225.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The NEWS file was simply wrong. Let's also improve the --help text on
this.
Fixes: #28221
|
| |
| |
| |
| |
| |
| |
| |
| | |
This log message is shown pretty regular at boot in various scenarios
(such as CI builds), and it's not a reason for any concern, it's just the
immediate effect of explicit configuration. Hence let's downgrade from
LOG_NOTICE to LOG_INFO so that it is still usually in the boot output,
but not particularly highlighted, since there's really no reason to.
|
| | |
|
|\ \
| | |
| | | |
relax data assert in dchp6_option_parse_string
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
dhcp6_option_parse_string is intended to clear strings with length 0,
for consistency. The data assert is too strict for this purpose, so we
will allow data || data_len == 0, similar to other dhcp6_option_parse*
helpers.
Fixes: fde788601be8 ("dhcp6-client: parse RFC8910 captive portal dhcp6 option")
|
|\ \ \
| |/ /
|/| | |
pid1: enqueue auto-restart job for the unit itself as JOB_START and for dependending units as JOB_RESTART
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
SERVICE_AUTO_RESTART_QUEUED
Follow-up for #28215
We can now correctly distinguish enqueued auto-restarts
from those that are still pending. Let's take advantage
of that.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This new job mode will enqueue a start job for a unit, and all units
depending on the unit will get a restart job enqueued. This is then used
for automatic sevice restarts: the unit itself is only started, the
depending units restarted. This way the unit will not go down
unnecessarily, triggering OnSuccess= needlessly.
This also introduces a new state SERVICE_AUTO_RESTART_QUEUED that is
entered once the restart jobs are enqueued. Previously we'd stay in
SERVICE_AUTO_RESTART, but that's problematic, since we'd lose
information whether we still need to enqueue the restart job during a
serialization/deserialization cycle or not. By having an explicit state
for this we know exactly whether we still need to enqueue the job or
not. It's also good since when we are in SERVICE_AUTO_RESTART_QUEUED we
want to act on unit_start(), but on SERVICE_AUTO_RESTART we want to wait
for the holdoff time to pass before we act on unit_start().
Fixes: #27722
|
| | | |
|
|\ \ \
| | | |
| | | | |
ndisc: clear ndisc captive portal value on bogus zero-len option
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This allows the correct, gracious, error handling to follow up in the
ndisc handler. Otherwise, an internal error is assumed and the interface
disabled.
Fixes: 9747955d2d60 ("ndisc: parse RFC8910 captive portal ipv6ra option")
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This value was freed but erroneously never cleared, leading to
use-after-free.
Fixes: 9747955d2d60 ("ndisc: parse RFC8910 captive portal ipv6ra option")
|
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When we request an address that already exists and is under removing,
we need to wait for the address being removed. Otherwise, configuration
of a route whose preferred source is the address will fail.
Fixes #28009.
Replaces #28088.
|
|/ / |
|
|\ \
| |/
|/| |
Implement RFC8910: captive portal dhcp options
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Accepts a boolean. When enabled retains captive portal configuration
advertised by the router.
|
| |
| |
| |
| |
| | |
Acepts a boolean. When enabled requests and retains captive portal
configuration from the DHCPv6 server.
|
| |
| |
| |
| |
| | |
Accepts a boolean. When enabled, UseCaptivePortal will request and
retain the captive portal configuration from the DHCP server.
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
A couple of Coverity-related fixes
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Resolves:
- CID#1490777
- CID#1498366
- CID#1508639
- CID#1509084
- CID#1509086
- CID#1509087
|
| | |
| | |
| | |
| | | |
Resolves: CID#1509244
|
| | |
| | |
| | |
| | |
| | |
| | | |
As `v` gets overwritten by the following detect_vm_cpuid() call.
Resolves: CID#1509247
|
| | |
| | |
| | |
| | |
| | | |
Unused since 788c2d9523.
Resolves: CID#1509248
|
| | |
| | |
| | |
| | | |
In some places, "<n> bits" is used when more appropriate.
|
|\ \ \
| | | |
| | | | |
ukify: merge .sbat sections from stub and kernel
|
| | | |
| | | |
| | | |
| | | |
| | | | |
We are now merging .sbat sections from sd-stub and kernel image, so
measure it in PCR11.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the kernel contains a .sbat section (they should start soon) then merge
it with the stub's so that revocations can apply to either component.
Fixes https://github.com/systemd/systemd/issues/27866
|