Commit Graph
48529 Commits
Author SHA1 Message Date
Yu Watanabe 373452ff9f Merge pull request #31932 from bluca/coverity
Fix coverity issues
2024-03-26 03:04:51 +09:00
Vitaly Kuznetsov df94b28366 kernel-install/60-ukify: do not rebuild existing UKIs
In case kernel-install is called to install what's already a UKI, 60-ukify
must be skipped. E.g. when distro shipped and signed UKI is being installed,
it is counter-productive to try to rebuild it with ukify. Also, the existing
script is not ready to handle UKIs with embedded initramfs.

Note, it is already possible to disable 60-ukify by setting
KERNEL_INSTALL_UKI_GENERATOR to something but in case it is not set, 60-ukify
assumes it should run.
2024-03-26 03:01:30 +09:00
Yu Watanabe 0ffcf398e5 Merge pull request #31899 from yuwata/sd-journal-add-match
sd-journal: introduce two helpers for adding journal filter
2024-03-26 02:56:58 +09:00
Yu Watanabe 6871b9c638 Merge pull request #31807 from yuwata/sd-ndisc-send
sd-ndisc: introduce sd_ndisc_send()
2024-03-26 02:55:33 +09:00
Yu Watanabe 65265b51df Merge pull request #31938 from YHNdnzj/journalctl-facility
journalctl: explicitly check < 0 for error
2024-03-26 02:23:50 +09:00
Mike Yuan d44233503f journalctl: explicitly check < 0 for error 2024-03-25 23:11:27 +08:00
Mike Yuan 981b033510 basic/string-table: remove unnecessary brackets 2024-03-25 23:10:52 +08:00
Luca Boccassi 650421fb8e Merge pull request #31730 from yuwata/network-dhcp-server-lease-file-follow-ups
network: several follow-ups for DHCP server lease file
2024-03-25 14:32:05 +00:00
Yu Watanabe bcd558f12e logs-show: use journal_add_matchf() and journal_add_match_pair() 2024-03-25 21:39:37 +09:00
Yu Watanabe 077f63264f networkctl: use journal_add_matchf() and journal_add_match_pair() 2024-03-25 21:39:37 +09:00
Yu Watanabe f936ae2120 journal-gateway: use journal_add_match_pair() and add_match_boot_id() 2024-03-25 21:39:37 +09:00
Yu Watanabe 8334b36653 coredumpctl: use strv_skip()
No functional change, just refactoring.
2024-03-25 21:39:37 +09:00
Yu Watanabe 5cacb0b645 coredumpctl: use journal_add_match_pair()
Also,
- use is_path(),
- drop unused pid.
2024-03-25 21:39:34 +09:00
Luca Boccassi ccd956887f test: add missing return value check in test-dirent-util
CID#1540029

Follow-up for 6a57d86bf9
2024-03-25 12:25:18 +00:00
Luca Boccassi b0118b2533 homework: add missing assert
'cache' is used unconditionally in this function, so add an assert.

CID#1540860
2024-03-25 12:02:20 +00:00
Friedrich Altheide 5e3c08d375 basic/virt: Fix virtualbox detection on proprietary system via board_vendor
Identify an virtualbox instance even if product_name, sys_vendor and bios_vendor reflect the
information of the real hardware, by checking if board_vendor == "Oracle Corporation"

This fixes #13429 again
The previous fix was removed in #21127
2024-03-24 18:02:42 +00:00
Gabríel Arthúr Pétursson 1923e21316 shared: Fix TPM2 unsealing when PCR values change
Recreate the encryption session on each retry. It's invalidated along
with the policy session when freed, failing subsequent retries.

	Unsealing HMAC key.
	WARNING:esys:src/tss2-esys/api/Esys_Unseal.c:295:Esys_Unseal_Finish() Received TPM Error
	ERROR:esys:src/tss2-esys/api/Esys_Unseal.c:98:Esys_Unseal() Esys Finish ErrorCode (0x00000128)
	A PCR value changed during the TPM2 policy session, restarting HMAC key unsealing (30 tries left).
	Missing encryption session
	Failed to unseal secret using TPM2: Invalid argument

Fixes #31881
2024-03-24 12:49:22 +00:00
Luca Boccassi a2369b8be4 Merge pull request #31919 from YHNdnzj/analyze-verify
Some fixes/improvements for analyze
2024-03-24 11:50:44 +00:00
Luca Boccassi 7591ae713f Merge pull request #31916 from YHNdnzj/socket-load-service
core/socket: validate service unit load state before continuing
2024-03-24 11:43:37 +00:00
Mike Yuan 8e1a1caa9c Merge pull request #31886 from DaanDeMeyer/logind
logind: Add fallback for when the PIDFDs= property is not available
2024-03-24 19:19:12 +08:00
Luca Boccassi 9c5b5d01f9 Merge pull request #31917 from keszybz/path-equal-ptr-drop
Drop unnecessary path_equal_ptr() wrapper
2024-03-24 11:10:58 +00:00
Luca Boccassi 84c72b53c7 Merge pull request #31913 from YHNdnzj/dynamic-user-unref
core/dynamic-user: trivial modernization
2024-03-24 11:10:10 +00:00
networkException f2cb9d17da bpf-socket-bind: fix unexpected behavior with either 0 allow or deny rules
This patch fixes an issue where, when not specifiying either at least one
`SocketBindAllow` or `SocketBindDeny` rule, behavior for the bind syscall
filtering would be unexpected.

For example, when trying to bind to a port with only "SocketBindDeny=any"
given, the syscall would succeed:

> systemd-run -t -p "SocketBindDeny=any" nc -l 8080

Expected with this set of rules (also in accordance with the documentation)
would be an Operation not permitted error.

This behavior occurs because a default initialized socket_bind_rule struct
matches what "any" represents. When creating the bpf list all elements get
default initialized, as such represeting "any". Seemingly it is necressarry
to set the size of the map to at least one, as such if no allow rule is
given default initialization and minimal map size cause one any allow rule
to be in the map, causing the behavior observed above.

This patch solves this by introducing a new "match nothing" magic stored in
the rule's address family and setting such a rule as the first one if no
rule is given, making sure that default initialized rule structs are never
used.

Resolves #30556
2024-03-24 11:08:58 +00:00
Luca Boccassi e5db2600bc Merge pull request #31552 from AdrianVovk/homed-update-policy-v2-split
Homed update policy: offline updates & use keyring
2024-03-24 10:11:09 +00:00
Mike Yuan ac97053618 analyze: refuse --global dot/verify
I don't quite understand the rationale of making these
verbs work with --global back in the day. But realistically
they interact with/spawn manager, while there's no
--global runtime scope manager. And to verify/inspect user
units it's sufficient to just use --user.

Fixes #31911
2024-03-24 01:28:28 +08:00
Mike Yuan 147e7b4446 analyze-dot: also show BindsTo= in --require 2024-03-24 01:28:28 +08:00
Mike Yuan de91848c3a analyze-dot: minor modernization 2024-03-24 01:28:28 +08:00
Mike Yuan 3efb597b07 analyze-security: use FOREACH_ARRAY 2024-03-24 01:11:14 +08:00
Mike Yuan 54668cb9a0 core/socket: use FOREACH_ARRAY at one more place 2024-03-24 01:08:40 +08:00
Mike Yuan d6a911e906 core/socket: clean up socket peer handling a bit
Currently, SocketPeer object acquired through
socket_acquire_peer() are referenced twice
in socket_enter_running and service_set_socket_fd,
and the reference taken by former gets dropped
through _cleanup_. This is a bit confusing.
Let's just pass ownership instead.
2024-03-24 01:08:40 +08:00
Mike Yuan 23908d8410 core/socket: remove duplicate unit_add_two_dependencies 2024-03-24 01:08:40 +08:00
Mike Yuan f61e4e5380 core/socket: validate service unit load state before continuing
Fixes #31915
2024-03-24 01:08:40 +08:00
Mike Yuan dc4c587163 core: introduce UNIT_IS_LOAD_ERROR helper 2024-03-24 01:08:40 +08:00
Zbigniew Jędrzejewski-Szmek acb27fba43 shared/install: use PATH_IN_SET() 2024-03-23 13:30:24 +01:00
Zbigniew Jędrzejewski-Szmek 1934242b72 Drop unnecessary path_equal_ptr() wrapper
path_equal already works with NULL pointers.
2024-03-23 13:21:06 +01:00
Mike Yuan abef0ec308 core/swap: another try on memory mgmt
Follow-up for ba31a5018f

Another stupid mistake... Shouldn't have
written anything when I was tired.
2024-03-23 19:48:28 +08:00
Zbigniew Jędrzejewski-Szmek da867fa3c3 Merge pull request #31907 from mrc0mmand/efi-shenanigans
efi: check if all sections of our EFI binaries are properly aligned
2024-03-23 12:04:14 +01:00
Adrian Vovk d94c7eef12 homework: Implement offline updates
This makes it possible to update a home record (and blob directory) of a
home area that's either completely absent (i.e. on a USB stick that's
unplugged) or just inaccessible due to lack of authentication
2024-03-23 01:05:13 +00:00
Adrian Vovk 5ec87d577f homework: Accept volume key from keyring
This bypasses authentication (i.e. user_record_authenticate) if the
volume key was loaded from the keyring and no secret section is
provided.

This also changes Update() and Resize() to always try and load the
volume key from the keyring. This makes the secret section optional for
these methods while still letting them function (as long as the home
area is active)
2024-03-23 01:05:13 +00:00
Adrian Vovk d0eff7a12d homework: Always upload volume key to keyring
This commit makes homework always upload the LUKS volume key into the
kernel keyring. This is different from previous behavior in three
notable ways:

- Previously, we'd only upload if auto-resize was on. In preparation for
upcoming changes, now we always upload

- Previously, we'd upload the user's actual password (or a password
obtained from a FIDO key or similar). Now, we upload the LUKS volume key
itself, to remove a layer of unnecessary indirection.

- Previously, Lock() wouldn't remove the key from the kernel keyring.
This, of course, defeats the purpose of Lock(), so now it removes the
key

This commit also allows the LUKS volume to be unlocked using the volume
key we obtained from the keyring.
2024-03-23 01:05:13 +00:00
Adrian Vovk 9a077230a4 homed: Ensure closed FD is handled before bus req
Before this fix, the following sequence of events was possible:
1. A client holding a Ref() FD closes their FD
2. kernel sends notification that all clients closed their FDs
3. Another client obtains its own Ref() FD from homed
4. homed handles the notification that all clients have closed their
   Ref() FDs. Thus it loses track of the fact that the session is
   actually still being held open by the client from step 3

This change makes sure that homed won't respond to bus messages (and
thus won't open more Ref() FDs) until it has handled all notifications
about the existing FDs being closed.

logind has had a very similar fix applied to it in
e11544a830

Fixes https://github.com/systemd/systemd/issues/31518
2024-03-23 01:04:51 +00:00
Mike Yuan f2859ba52f core/dynamic-user: trivial modernization 2024-03-23 03:43:30 +08:00
Mike Yuan 8f0646da09 core/execute: use STR_IN_SET where appropriate 2024-03-23 01:27:09 +08:00
Luca Boccassi 1b5f3f5662 Merge pull request #31670 from CodethinkLabs/vmspawn/generate_ssh_keys
vmspawn: generate ssh keys
2024-03-22 16:28:03 +00:00
Daan De Meyer 66b574b0a2 tree-wide: Add allow_pidfd argument to bus_append_scope_pidref() 2024-03-22 17:03:35 +01:00
Daan De Meyer 16f182e59a Merge pull request #31839 from DaanDeMeyer/log
log: Add per target log levels
2024-03-22 15:11:11 +01:00
Frantisek Sumsal 7ff3b88396 efi: check if all sections of our EFI binaries are properly aligned 2024-03-22 14:02:03 +01:00
Unique-Usman 5f0e4d2fb4 Added more ASSERT macro and also make some test file to use them 2024-03-22 12:31:14 +00:00
Luca Boccassi 3be1ebcb4d Merge pull request #31902 from YHNdnzj/swap-followup
core: some follow-ups
2024-03-22 12:08:53 +00:00
Daan De Meyer e8815abff6 log: Add per target log levels
For CI in mkosi, I want to configure systemd to log at debug level
to the journal, but not to the console. While we already have max
level settings for journald's forwarding settings, not every log line
goes to the journal, specifically during early boot and when units
are connected directly to the console (think systemd-firstboot), so
let's extend the log level options we already have to allow specifying
a comma separated list of values and lets allow prefixing values with
the log target they apply to to make this possible.
2024-03-22 12:46:32 +01:00