Commit Graph
45929 Commits
Author SHA1 Message Date
Dan Streetman 9c18019787 tpm2: don't use GetCapability() to check transient handles
The kernel tpm "resource manager" interface doesn't report that any transient
handles exist, even if they do, so don't bother asking if the handle is
transient.
2023-10-10 16:55:39 -04:00
Lennart Poettering 66cd3537f9 dissect: don't show non-JSON arch + sector size in JSON mode 2023-10-10 21:44:20 +02:00
Emanuele Giuseppe Esposito 1277575408 ukify: override default option value with config file
If an option like SecureBootCertificateDir is given, it should override
the default '/etc/pki/pesign'. Until now the config file option were
always ignored if they had a default.

So from now on, every ConfigItem with a config_key and default field
should also give config_push = ConfigItem.config_set.
2023-10-10 07:06:24 -04:00
Emanuele Giuseppe Esposito 5c52078162 ukify: automatically infer --signtool from the parameters given
--signtool is actually useless: it can be inferred depending on if
--secureboot-certificate-name (pesign) is given, or
--secureboot-private-key and --secureboot-certificate (sbsign) is given.

Leave the option just for backwards compatibility.
2023-10-10 07:06:23 -04:00
Dan Streetman 1524184dd1 tpm2: do not call Esys_TR_Close()
Unfortunately, the tpm2-tss library doesn't reference count handles, and a call
to Esys_TR_Close() will remove the handle that could be in use by other
code. So stop calling Esys_TR_Close(), and leave the handle around until we
cleanup the entire ESYS_CONTEXT.
2023-10-10 05:56:45 -04:00
Dan Streetman adcd3266ec test: add tests for systemd-cryptenroll --tpm2-seal-key-handle
In TEST-70-TPM2, test systemd-cryptenroll --tpm2-seal-key-handle using the
default (0) as well as the SRK handle (0x81000001), and test using a non-SRK
handle index after creating and persisting a primary key.

In test/test-tpm2, test tpm2_seal() and tpm2_unseal() using default (0), the SRK
handle, and a transient handle.
2023-10-10 05:56:45 -04:00
Dan Streetman 382bfd90c3 cryptenroll: allow specifying handle index of key to use for sealing
This defaults to the SRK index.
2023-10-10 05:40:27 -04:00
Lennart Poettering b5ac77e9a5 Merge pull request #29493 from YHNdnzj/unit-always-set-user-home
core/execute: always set $USER and introduce SetLoginEnvironment=
2023-10-10 10:16:07 +02:00
Luca Boccassi 12de4ed1ca boot: measure loader.conf in PCR5
Results in:

- EventNum: 26
  PCRIndex: 5
  EventType: EV_EVENT_TAG
  DigestCount: 4
  Digests:
  - AlgorithmId: sha1
    Digest: 155fb999ca61ba8c7b1f1d87cee821f772ef084a
  - AlgorithmId: sha256
    Digest: 4c26adf231603613afc00bb3d5cad046aec6a525ca01262417c7085caab452b5
  - AlgorithmId: sha384
    Digest: 3e0758cb6605ac274e55d747bf29ee3474fc4413cd5e7a451d1375219cd7f08a30fc915a8df7131657ca78b82b9ccec8
  - AlgorithmId: sha512
    Digest: e32d905b9092c543802f386db9a397d9b6593bdb8360fb747a6d23e491a09595fec8699184cc790d0873a3d52ed16d045538f0c73ece48278fae0fb6ed9b4ed6
  EventSize: 32
  Event: 2a58bcf5180000006c006f0061006400650072002e0063006f006e0066000000
2023-10-09 22:22:09 +01:00
Luca Boccassi 3e6f010e03 stub: measure all cmdline addons together 2023-10-09 22:22:09 +01:00
Luca Boccassi 68f85761e2 stub: add support for dtb addons
Same as kernel command line addons.
2023-10-09 22:22:09 +01:00
Luca Boccassi 3b66a6764e Move CLEANUP_ARRAY to src/fundamental 2023-10-09 22:22:09 +01:00
Luca Boccassi 3e5a499009 efi: add xmemdup 2023-10-09 22:22:09 +01:00
Luca Boccassi d869ec4ab0 efi: add EFI_TCG2_TAGGED_EVENT and helpers 2023-10-09 22:22:09 +01:00
Luca Boccassi ace07128ac dissect: avoid clobbering device-mapper error when activating verity
The device-mapper driver can return a wild variety of errors when trying
to activate the same dm-verity volume concurrently, as it might happen
with an image. There is a fallback logic in place, but the original
return code was clobbered when userspace signature check was added.
Add it back.

Follow-up for c2fa92e7e8
2023-10-09 18:41:16 +01:00
Mike Yuan 854eca4a95 core/execute: always set $USER and introduce SetLoginEnvironment=
Before this commit, $USER, $HOME, $LOGNAME and $SHELL are only
set when User= is set for the unit. For system service, this
results in different behaviors depending on whether User=root is set.

$USER always makes sense on its own, so let's set it unconditionally.
Ideally $HOME should be set too, but it causes trouble when e.g. getty
passes '-p' to login(1), which then doesn't override $HOME. $LOGNAME and
$SHELL are more like "login environments", and are generally not
suitable for system services. Therefore, a new option SetLoginEnvironment=
is also added to control the latter three variables.

Fixes #23438

Replaces #8227
2023-10-10 00:00:26 +08:00
Mike Yuan 1c9433559a core/execute: modernize get_fixed_{user,group}
No functional change, preparation for later commit.
2023-10-09 23:40:58 +08:00
Mike Yuan 59026bccd0 core/execute: use FOREACH_ARRAY in one more place 2023-10-09 23:40:57 +08:00
Luca Boccassi 00dd4e78f6 Merge pull request #29495 from yuwata/network-manager-state-file
network: fixlets for manager state file
2023-10-08 22:46:44 +01:00
Luca Boccassi 6bcc7bcf20 Merge pull request #29490 from yuwata/network-tc-fixes
network: several fixes for traffic control support
2023-10-08 22:31:26 +01:00
Yu Watanabe 9709f9edc5 network/dhcp6: keep lease when running in information request mode
Fixes #28566.
2023-10-08 16:22:29 +09:00
Yu Watanabe 814d8f962f network/dhcp6: shorten dhcp6_handler()
Note, currently dhcp6_lease_information_acquired() do nothing, so this
does not change any behavior.
2023-10-08 16:18:49 +09:00
Yu Watanabe 86a66e9b95 network: also save NTP servers and friends obtained by other protocols
Previously, only servers that statically configursd or obtained by
DHCPv4 protocol are saved in the manager state file.

NTP servers obtained by DHCPv6 could not be used by timesyncd.

Fixes #29148.
2023-10-08 13:06:28 +09:00
Lennart Poettering a81577961c core: refactor compare_job_priority()
Let's move it out of cgroup.[ch]. The function primarily compares the
priority values for units, hence let's move the core of it into a new
function unit_compare_priority() in unit.[ch], and then make
compare_job_priority() a local wrapper for it in manager.[ch]

Shorten the code a bit while we are at it.
2023-10-07 22:22:00 +09:00
Yu Watanabe 328539c21c Merge pull request #29482 from poettering/cgroup-func-rename
core: various clean-ups in cgroup.[ch] and around
2023-10-07 22:18:14 +09:00
Yu Watanabe 9e4d87166f network/tc: support Parent=X:0 for qdiscs
When the minor part of the parent handle is zero, let's check if the
corresponding qdisc exists, rather than tc class.
2023-10-07 21:35:16 +09:00
Yu Watanabe 19607e4371 network/tc: allow to configure class or qdisc under foreign one
Some qdiscs (e.g. tbf) implicitly create class(es) on create.
Previously, we could not create any child qdisc under the class, as the
implicit class is tagged as foreign.
2023-10-07 21:35:16 +09:00
Yu Watanabe c9e70be162 network/tc: re-enumerate traffic control classes when a qdisc created
Some kind of qdisc implicitly creates a class for the qdisc, but the
created class is not notified by the kernel. So, we need to explicitly
enumerate classes after a qdisc is created.
2023-10-07 21:35:16 +09:00
Yu Watanabe 4147618612 network/tc: fix enumeration logic of traffic control classes
TC class can be enumerated only per link.
2023-10-07 21:35:16 +09:00
Yu Watanabe be8e933900 network/tc: drop child tree of traffic control nodes on remove
When a node of traffic control tree is removed, all child nodes are also
removed but their removal are not notified by the kernel.
So, previously, removed TC classes or qdiscs under the removed node were
kept in the memory of networkd, and may cause failure on reconfigure.
2023-10-07 21:35:16 +09:00
Yu Watanabe 0708c4fbdb network/tc: align vtables 2023-10-07 21:35:16 +09:00
Zbigniew Jędrzejewski-Szmek 3be6ab5c11 basic/macro.h: move a bunch of stuff to macro-fundamental.h
We should start using this functionality in src/boot/efi/ too.
2023-10-07 12:09:54 +02:00
Daan De Meyer d210507621 Merge pull request #29491 from yuwata/varlink-follow-ups
varlink: several follow-ups
2023-10-07 11:15:02 +02:00
Yu Watanabe 955fc5d8ab tree-wide: add missing sigbus handling 2023-10-07 11:13:27 +02:00
Yu Watanabe cf3d95b25d tree-wide: use path_simplify_alloc() more 2023-10-07 16:00:03 +09:00
Yu Watanabe 86f6d32eba varlink: drop unnecessary condition
When 'exec' is true, 'c' is always non-NULL.

Fixes CID#1522384.
2023-10-07 15:51:05 +09:00
Yu Watanabe 939630ae28 varlink: fix typo
Follow-ups for #29325.
2023-10-07 15:48:22 +09:00
Luca Boccassi a5e6d2fdf5 Merge pull request #29475 from keszybz/remove-wrapper-functions
Remove unnecessary wrapper functions
2023-10-06 22:02:09 +01:00
Lennart Poettering 49b6babb76 cgroup: rename cgroup_modify_nft_set() → unit_modify_nft_set()
This is the only function that cgroup.h exports that is prefixed with
cgroup_ where this does not refer to some type such as CGroupContext or
CGroupTasksMax or so. It simply operates on a unit. And it doesn't even
modify a cgroup, but just modifies an nft set.

Hence, to make the naming scheme systematic, change prefix from cgroup_
to unit_, matching the majority of the functions that operate on Unit*
in the file.
2023-10-06 18:42:22 +02:00
Lennart Poettering 64c71f4fd7 cgroup: un-export two functions 2023-10-06 18:36:03 +02:00
Lennart Poettering d46510de2f cgroup: refactor cgroup_xattr_apply()
Split the function up, so that each set of xattrs is applied separately.
2023-10-06 18:24:50 +02:00
Lennart Poettering 17d047f507 cgroup: drop cgroup path parameter from xattr calls
We only pass the same thing there: u->cgroup_path or NULL (which is
ultimately the same as u->cgroup_path). Hence let's simplify things, and
simply drop the whole parameter, and imply u->cgroup_pat.
2023-10-06 18:20:08 +02:00
Lennart Poettering c6f2dca68c cgroup: rename cgroup_add_* to cgroup_context_*
They add settings to a CGroupContext, hence give them the expected
context, to make clear they do not operate on anything else than the
structure (i.e. not on a kernel cgroup or so).
2023-10-06 18:15:56 +02:00
Lennart Poettering 94f0b13b16 cgroup: rename TasksMax structure to CGroupTasksMax
Almost all our enums/structs/funcs carry the CGroup prefix if they are
defined in cgroup.h, TasksMax so far does not, even though it is
exclusively used in cgroup context.

Change that.
2023-10-06 18:13:16 +02:00
Emil Velikov cb341090d0 sd-boot: add auto-reboot and auto-poweroff entries
Currently only an auto-reboot-to-firmware entry is available. For other
features - like reboot and power off - one needs to press the uppercase
B and O respectively.

Embedded devices may be missing a full fledged keyboard, so allow for
sd-boot to generate those entries.

v2:
 - add to the config parser/man/bootctl/sd-boot info screen
 - keep them off by default
 - add the (O)ff and re(B)oot help text if boot entries are not shown
 - drop irrelevant get_os_indications_supported() comment
 - s/ShutDown/Shutdown/

v3:
 - cast shutdown_system() reboot_system() to void

v4:
 - shutdown -> poweroff
 - add trailing ",ignoring" in parser message
 - drop explicit default state assignment to "false"

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2023-10-06 16:21:23 +01:00
Emil Velikov 28052aa8cd sd-boot: sprinkle some ", ignoring" trailing messages
As mentioned by Lennart:

  ... we typically suffix such messages with ", ignoring", to indicate
  that we don't consider this fatal for anything.

Update config_defaults_load_from_file() to follow that pattern.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2023-10-06 16:21:04 +01:00
Emil Velikov a9bc49b4a8 sd-boot: remove unneeded false assignment
When the assignment is missing, the default 0/NULL/false value is used.
So drop the explicit piece in config_load_defaults()

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2023-10-06 16:21:01 +01:00
Emil Velikov 498d0cc426 sd-boot: cast away reboot_into_firmware() return type
As mentioned by Lennart, in a commit where I was adding similar piece of
code:

  maybe cast this call to void, to tell static analyzers that we are
  ignoring the return value on purpose, not by accident

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2023-10-06 16:20:59 +01:00
Zbigniew Jędrzejewski-Szmek 3c4c109de1 basic/macro: add comment explaining DEFINE_TRIVIAL_DESTRUCTOR() 2023-10-06 16:48:22 +02:00
Zbigniew Jędrzejewski-Szmek f6210525cc fuzz-bus-match: drop unnecessary wrapper function
Same confusion as in previous commit.
2023-10-06 16:48:16 +02:00