Yu Watanabe [Sat, 6 Jan 2024 03:42:02 +0000 (12:42 +0900)]
test-network: do not call networkctl if networkd is in failed state
Otherwise, networkd may be restarted by DBus and we may get wrong
results.
Yu Watanabe [Sat, 6 Jan 2024 03:33:09 +0000 (12:33 +0900)]
test-network: introduce networkctl() and friends
Yu Watanabe [Sat, 6 Jan 2024 02:32:03 +0000 (11:32 +0900)]
test-network: use read_networkd_log() at one more place
Yu Watanabe [Sat, 6 Jan 2024 02:29:01 +0000 (11:29 +0900)]
test-network: sync journal before read
Otherwise, test cases that check journal entries, e.g. test_unit_file()
may fail.
Lennart Poettering [Fri, 5 Jan 2024 15:41:24 +0000 (16:41 +0100)]
nspawn: lock down access to notify socket a bit
On Linux only the "w" access bit is necessary to connect to an AF_UNIX
socket, hence let's only set that and nothing else, to limit exposure.
Just paranoia.
Frantisek Sumsal [Fri, 5 Jan 2024 19:39:40 +0000 (20:39 +0100)]
core: escape spaces in paths during serialization
Otherwise we split them incorrectly when deserializing them.
Resolves: #30747
Yu Watanabe [Sat, 6 Jan 2024 02:16:19 +0000 (11:16 +0900)]
Merge pull request #30794 from poettering/parse-vsock-better
socket-util: add more careful parsers for AF_VSOCK cid/port
Yu Watanabe [Fri, 5 Jan 2024 18:27:07 +0000 (03:27 +0900)]
udevadm: allow to override the default log level by environment variable
Previously, there was no way to override the log level for test and
test-builtin commands. Let's re-parse environment after setting the log
level to debug. Then, we can control the log level through environment
variable.
Yu Watanabe [Fri, 5 Jan 2024 23:30:31 +0000 (08:30 +0900)]
Merge pull request #30796 from mrc0mmand/journalctl-namespaces
journalctl: provide shell completion for --namespace=
Lennart Poettering [Fri, 5 Jan 2024 15:35:35 +0000 (16:35 +0100)]
dev-setup: rework make_inaccessible_nodes() around openat() and friends
Let's operate on fds rather than paths. Make some tweaks to the logic on
top:
1. Mark the resulting dir as read-only after we are done.
2. Use the new inode_type_to_string() calls to determine the inode
names.
3. If an inode already exists, try to adjust the access mode, just in
case.
4. Use FOREACH_ARRAY()
Yu Watanabe [Fri, 5 Jan 2024 23:27:35 +0000 (08:27 +0900)]
Merge pull request #30775 from yuwata/network-nexthop-is-ready
network: introduce nexthop_is_ready() helper function and use it
networkException [Thu, 4 Jan 2024 17:45:25 +0000 (18:45 +0100)]
parse-helpers: allow port 0 for socket bind items
This patch adds a new parameter to parse_ip_port_range, giving callers
the option to allow ranges to have their min be 0 instead of 1.
This is then used by parse_ip_ports_token, intern used by
parse_socket_bind_item to allow port 0 when restricting bind system
calls with SocketBindDeny / SocketBindAllow.
With this, users running server software written using the golang
standard library will be able to effectively sandbox their software,
albeit with a small loss in security protections by allowing the
process to bind on a random port in the
/proc/sys/net/ipv4/ip_local_port_range.
Lennart Poettering [Fri, 5 Jan 2024 21:37:29 +0000 (22:37 +0100)]
Merge pull request #30791 from poettering/nspawn-restrict-run-host
nspawn: make some files we expose in /run/host/ in nspawn read-only via access mode
Lennart Poettering [Fri, 5 Jan 2024 15:40:45 +0000 (16:40 +0100)]
nspawn: add new common make_run_host() helper
This new helper creates the /run/host/ top-level dir inside the
container.
Lennart Poettering [Fri, 5 Jan 2024 15:32:59 +0000 (16:32 +0100)]
socket-util: add more careful parsers for AF_VSOCK cid/port
Let's handle the magic CIDs, and filter out invalid ports.
Lennart Poettering [Fri, 5 Jan 2024 21:29:15 +0000 (22:29 +0100)]
missing: add a bunch of vsock related defines
Yu Watanabe [Fri, 5 Jan 2024 19:26:38 +0000 (04:26 +0900)]
Merge pull request #30790 from poettering/null-creds-allow-with-tpm
creds: allow using NULL encryption if explicitly requested even if TPM is available, and add a comprehensive credential encryption/decrpytion test
Frantisek Sumsal [Fri, 5 Jan 2024 17:58:43 +0000 (18:58 +0100)]
shell-completion: provide completion for journalctl --namespace=
Resolves: #30381
Frantisek Sumsal [Fri, 5 Jan 2024 17:58:26 +0000 (18:58 +0100)]
shell-completion: fix mixed indent
Frantisek Sumsal [Fri, 5 Jan 2024 17:06:08 +0000 (18:06 +0100)]
journalctl: implement --list-namespaces
Apart from being useful on its own, this will be used in the following
commit for shell completions.
Lennart Poettering [Fri, 5 Jan 2024 15:42:46 +0000 (16:42 +0100)]
nspawn: set read-only access mode on two /run/host/ files
The diectory is mounted read-only anyway, hence this doesn't do much,
but let's lock this down on every level we can.
Lennart Poettering [Fri, 5 Jan 2024 15:31:55 +0000 (16:31 +0100)]
fileio: add new flag WRITE_STRING_FILE_MODE_0444
With this write_string_file() will create the file with 0444 access mode
(i.e. read-only).
Lennart Poettering [Tue, 21 Nov 2023 13:17:31 +0000 (14:17 +0100)]
test: add credential encryption/decryption test
Lennart Poettering [Mon, 20 Nov 2023 17:00:35 +0000 (18:00 +0100)]
creds-util: optionally, allow NULL credentials even with TPM
Lennart Poettering [Fri, 5 Jan 2024 13:45:15 +0000 (14:45 +0100)]
Merge pull request #30754 from poettering/iovecification
tpm2-util: convert various things over to struct iovec rather that data ptr + size
Lennart Poettering [Fri, 5 Jan 2024 13:44:59 +0000 (14:44 +0100)]
Merge pull request #30784 from poettering/json-dispatch-enum
json: add macro for automatically defining a dispatcher for an enum
Lennart Poettering [Fri, 5 Jan 2024 13:44:50 +0000 (14:44 +0100)]
Merge pull request #30785 from poettering/json-allow-extensions
json: add flag for allowing extension of json objects when dispatching, without otherwise being permissive
Yu Watanabe [Fri, 5 Jan 2024 09:53:56 +0000 (18:53 +0900)]
test: wait for verbose-success.service finished
Otherwise, the command 'echo' may not be invoked yet.
Follow-up for
25aa35d465cf4725bc3ebd2a919e7f39ecafb920.
Lennart Poettering [Fri, 5 Jan 2024 11:39:28 +0000 (12:39 +0100)]
tree-wide: use JSON_ALLOW_EXTENSIONS when disptching at various places
If we want to allow method replies to be extended without this breaking
compat, then we should set this flag. Do so at various method call
replies hence.
Also do it when parsing user/group records, which are expressly
documented to be extensible, as well as the hibernate JSON record.
Lennart Poettering [Mon, 4 Dec 2023 17:10:02 +0000 (18:10 +0100)]
json: add new dispatch flag JSON_ALLOW_EXTENSIONS
This is a subset of JSON_PERMISSIVE focussed on allowing parsing of
varlink replies that get extended, i.e. gain new fields, without
allowing more than that (i.e. without allowing missing fields, or bad
field types or such).
Lennart Poettering [Fri, 5 Jan 2024 11:14:26 +0000 (12:14 +0100)]
Merge pull request #29692 from H5117/fix_pkcs11_uri
cryptenroll: change class in provided PKCS#11 URI if necessary
Lennart Poettering [Fri, 5 Jan 2024 10:50:47 +0000 (11:50 +0100)]
oomd: make use of new JSON_DISPATCH_ENUM_DEFINE() macro
Lennart Poettering [Fri, 5 Jan 2024 11:06:52 +0000 (12:06 +0100)]
user-record: port over to JSON_DISPATCH_ENUM_DEFINE()
Lennart Poettering [Fri, 5 Jan 2024 11:00:35 +0000 (12:00 +0100)]
test: add unit test for JSON_DISPATCH_ENUM_DEFINE()
Lennart Poettering [Mon, 4 Dec 2023 17:12:10 +0000 (18:12 +0100)]
json: add macro for automatically defining a dispatcher for an enum
Lennart Poettering [Mon, 20 Nov 2023 16:18:43 +0000 (17:18 +0100)]
tpm2-util: more iovec'ification
Let's move more code to using struct iovec for passing around binary
chunks of data.
No real changes in behaviour, just refactoring.
Lennart Poettering [Fri, 5 Jan 2024 10:34:34 +0000 (11:34 +0100)]
test: add unit tests for the new iovec helpers
Lennart Poettering [Tue, 21 Nov 2023 13:16:44 +0000 (14:16 +0100)]
iovec-util: add CONST_IOVEC_MAKE_STRING()
Lennart Poettering [Tue, 21 Nov 2023 12:12:08 +0000 (13:12 +0100)]
iovec-util: add new iovec_memdup() helper
Lennart Poettering [Tue, 21 Nov 2023 12:11:45 +0000 (13:11 +0100)]
iovec-util: add new iovec_memcmp() helper
Lennart Poettering [Mon, 20 Nov 2023 16:06:06 +0000 (17:06 +0100)]
iovec-util: add iovec_is_valid() helper
Lennart Poettering [Mon, 20 Nov 2023 16:04:46 +0000 (17:04 +0100)]
iovec-util: rework IOVEC_MAKE_STRING() to work with compound initialized input
This avoids the ({}) that IOVEC_MAKE_STRING() so far used and might
cause a memory corruption if the parameter passed in is itself allocated
via a compount initialized array or so.
Also, this makes sure both IOVEC_MAKE_STRING() and IOVEC_MAKE() accept
'const' parameters without this causing a compiler warning.
Lennart Poettering [Tue, 21 Nov 2023 10:44:16 +0000 (11:44 +0100)]
json: add more iovec helpers for serializing/deserializing binary data
Lennart Poettering [Fri, 5 Jan 2024 10:09:00 +0000 (11:09 +0100)]
update TODO
Frantisek Sumsal [Fri, 5 Jan 2024 10:09:14 +0000 (11:09 +0100)]
Merge pull request #30772 from yuwata/test-network-improvements
test-network: add more test cases and several cleanups
Yu Watanabe [Fri, 5 Jan 2024 10:07:37 +0000 (19:07 +0900)]
Yu Watanabe [Fri, 5 Jan 2024 10:06:06 +0000 (19:06 +0900)]
Yu Watanabe [Fri, 5 Jan 2024 10:03:24 +0000 (19:03 +0900)]
Yu Watanabe [Fri, 5 Jan 2024 10:02:07 +0000 (19:02 +0900)]
Yu Watanabe [Fri, 5 Jan 2024 10:00:58 +0000 (19:00 +0900)]
core/dbus-manager: fix typo
Follow-up for
84c01612de805d88875d4d91cfcf73cf10f99447.
Yu Watanabe [Fri, 5 Jan 2024 09:59:11 +0000 (18:59 +0900)]
Yu Watanabe [Fri, 5 Jan 2024 09:57:49 +0000 (18:57 +0900)]
Lennart Poettering [Fri, 5 Jan 2024 10:04:11 +0000 (11:04 +0100)]
Merge pull request #30728 from polarina/noda
Assign noDA attribute to TPM2 objects not dependant on a PIN
Adrian Vovk [Thu, 28 Dec 2023 23:12:06 +0000 (18:12 -0500)]
core: Add %D specifier for $XDG_DATA_HOME
We already have specifiers that resolve to $XDG_STATE_HOME, and
$XDG_CONFIG_HOME. $XDG_DATA_HOME is in a similar vein.
It allows units belonging to the user service manager to correctly look
into ~/.local/share. I imagine this would be most useful inside of
condition checks (i.e. only run a service on session startup if some
data is not found in ~/.local/share) or in the inotify monitoring of a
.path unit
Vladimir Stoiakin [Tue, 24 Oct 2023 16:00:43 +0000 (19:00 +0300)]
cryptenroll: change class in provided PKCS#11 URI if necessary
cryptenroll accepts only PKCS#11 URIs that match both a certificate and a private key in a token.
This patch allows users to provide a PKCS#11 URI that points to a certificate only, and makes possible to use output of some PKCS#11 tools directly.
Internally the patch changes 'type=cert' in the provided PKCS#11 URI to 'type=private' before storing in a LUKS2 header.
Fixes: #23479
Yu Watanabe [Thu, 4 Jan 2024 16:10:56 +0000 (01:10 +0900)]
network: do not make the implied default have the first priority
Follow-up for
b732606950f8726c0280080c7d055a714c2888f5 and
6706ce2fd2a13df0ae5e469b72d688eaf643dac4.
If Network.ignore_carrier_loss_set flag is set, then the timeout value
is always used, hence the logic implemented by
b732606950f8726c0280080c7d055a714c2888f5 never worked.
Mike Yuan [Thu, 4 Jan 2024 12:26:00 +0000 (20:26 +0800)]
core/cgroup: use designated initializer more, make dup source const
Lennart Poettering [Fri, 5 Jan 2024 09:01:30 +0000 (10:01 +0100)]
Merge pull request #30731 from poettering/logind-user-early
logind: rework the special casing we give root's sessions
Alberto Planas [Thu, 4 Jan 2024 14:12:22 +0000 (15:12 +0100)]
Use .d path for PCRLOCK_KERNEL_*_PATH
Fix the path for the generated.pcrlock files for the cmdline and initrd
cases. Without it the tool complains with:
Failed to parse component file /var/lib/pcrlock.d/720-kernel-initrd.pcrlock, ignoring: Is a directory
Signed-off-by: Alberto Planas <aplanas@suse.com>
Lennart Poettering [Fri, 5 Jan 2024 09:00:03 +0000 (10:00 +0100)]
Merge pull request #30753 from aafeijoo-suse/special-refactor
tree-wide: use defines from special.h in some missing places
Lennart Poettering [Fri, 5 Jan 2024 08:59:40 +0000 (09:59 +0100)]
Merge pull request #30769 from AdrianVovk/statx-timestamp
stat-util: Add statx version of timespec_load
Luca Boccassi [Fri, 5 Jan 2024 08:27:21 +0000 (09:27 +0100)]
Merge pull request #30743 from bluca/coverity
Assorted coverity fixes
Luca Boccassi [Fri, 5 Jan 2024 08:26:42 +0000 (09:26 +0100)]
Merge pull request #30774 from mrc0mmand/test-tweaks
test: install correct kpartx udev rules (again) and dump cores of sanitized binaries
Luca Boccassi [Fri, 5 Jan 2024 08:26:19 +0000 (09:26 +0100)]
Merge pull request #30759 from mrc0mmand/resolved-followup
resolve: initialize `r` during OOM
Sergei Zhmylev [Mon, 11 Dec 2023 19:23:47 +0000 (22:23 +0300)]
journalctl: add --exclude-identifier option
Lennart Poettering [Tue, 21 Nov 2023 08:59:46 +0000 (09:59 +0100)]
creds-util: automatically append NUL byte to decrypted creds
Both as safety net and as convenience feature of a string is contained
in the credential
Lennart Poettering [Mon, 20 Nov 2023 15:22:33 +0000 (16:22 +0100)]
creds: rename "tpm2-absent" encryption to "null" encryption
This is what it is after all: encryption with a NULL key. This is more
descriptive, but also relevant since we want to use this kind of
credentials in a different context soon: for carrying pcrlock data into
a UKI. In that case we don#t want encryption, since the pcrlock data is
intended to help unlocking secrets, hence should not be a secret itself.
This only changes the code labels and the way this is labelled in the
output. We retain compat with the old name.
Lennart Poettering [Mon, 20 Nov 2023 16:42:38 +0000 (17:42 +0100)]
find-esp: adjust parameter indentating to our usual coding style
Lennart Poettering [Wed, 29 Nov 2023 10:21:21 +0000 (11:21 +0100)]
logind: use unlink_and_free() at once more place
Lennart Poettering [Thu, 4 Jan 2024 14:17:19 +0000 (15:17 +0100)]
json: drop redundant check
The same check is done exactly one line later, because this is one of
the things that json_variant_is_regular() checks.
As per: https://github.com/systemd/systemd/pull/30578/commits/
fa9a6db478e3f0f2753e4633af6d0d4881707c2b#r1441792019
Lennart Poettering [Thu, 4 Jan 2024 21:55:23 +0000 (22:55 +0100)]
Merge pull request #30749 from poettering/tmpfiles-verb-fix
tmpfiles: correctly apply globbing when cleaning 'x' lines
Lennart Poettering [Thu, 4 Jan 2024 21:54:41 +0000 (22:54 +0100)]
Merge pull request #30758 from YHNdnzj/vpick-not-ptr
vpick: trivial follow-up
Yu Watanabe [Thu, 4 Jan 2024 20:30:43 +0000 (05:30 +0900)]
network/route: use nexthop_is_ready()
Yu Watanabe [Thu, 4 Jan 2024 19:58:37 +0000 (04:58 +0900)]
network/nexthop: wait for requests for group members being processed
This also split out the check as nexthop_is_ready().
Yu Watanabe [Thu, 4 Jan 2024 20:01:05 +0000 (05:01 +0900)]
network/nexthop: refuse id == 0 earlier
All requested nexthop has a non-zero ID.
Frantisek Sumsal [Thu, 4 Jan 2024 16:51:40 +0000 (17:51 +0100)]
ci: build with -O2 and -Wmaybe-uninitialized
According to the comment in meson.build this should be a supported
configuration, so let's test it in the CI as well.
Frantisek Sumsal [Thu, 4 Jan 2024 16:50:13 +0000 (17:50 +0100)]
shared: initialize a couple of values explicitly
As gcc has trouble figuring this itself with -O2 and -Wmaybe-initialized.
Frantisek Sumsal [Thu, 4 Jan 2024 15:48:10 +0000 (16:48 +0100)]
resolve: initialize `r` during OOM
Otherwise we'd use some garbage value in the error path.
../src/resolve/resolved-dns-query.c: In function ‘dns_query_accept’:
../src/resolve/resolved-dns-query.c:944:27: error: ‘r’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
944 | q->answer_errno = -r;
| ^~
cc1: all warnings being treated as errors
Follow-up for
9ca133e97a0.
Frantisek Sumsal [Thu, 4 Jan 2024 19:31:32 +0000 (20:31 +0100)]
test: allow sanitized binaries to dump a core
If a binary built with ASan crashes for a reason unrelated to ASan
stuff, we're left with pretty much nothing, as there is neither an ASan
trace nor a coredump. Let's make this slightly more debug-able by
allowing such binaries to dump a core, but without the huge shadow map
(we should be actually fine by just setting disable_coredump=0, since
use_madv_dontdump defaults to true, but let's play it safe and not
potentially dump a 16+ TB core file).
Frantisek Sumsal [Thu, 4 Jan 2024 19:28:37 +0000 (20:28 +0100)]
test: install correct kpartx udev rules on Ubuntu
Follow-up for
519f0074cf.
Yu Watanabe [Tue, 2 Jan 2024 19:40:48 +0000 (04:40 +0900)]
test-network: add test case about replacing nexthop
Yu Watanabe [Tue, 2 Jan 2024 19:40:54 +0000 (04:40 +0900)]
test-network: merge three tests for neighbor
To speed up tests.
Yu Watanabe [Tue, 2 Jan 2024 19:41:01 +0000 (04:41 +0900)]
test-network: show monotonic timestamp and drop hopstname from logs
Adrian Vovk [Thu, 4 Jan 2024 17:49:34 +0000 (12:49 -0500)]
tmpfiles: Use statx_timestamp_load
This is a new utility function recently added. Let's use it.
Adrian Vovk [Thu, 4 Jan 2024 17:48:39 +0000 (12:48 -0500)]
stat-util: Add statx version of timespec_load
statx_timestamp is, for all intents and purposes, the same as a struct
timespec. So, we can trivially convert it and call timespec_load on it.
This commit adds helper functions that do just that.
Luca Boccassi [Wed, 12 Oct 2022 22:46:28 +0000 (23:46 +0100)]
tmpfiles: add --purge switch
Any file/directory created by a tmpfiles.d will be deleted. Useful for
purge/factory reset patterns.
Gabríel Arthúr Pétursson [Wed, 3 Jan 2024 15:59:14 +0000 (15:59 +0000)]
Assign noDA attribute to TPM2 objects not dependant on a PIN
All the keys are high-entropy keys that cannot be practically
bruteforced and thus don't require protection from dictionary attacks.
With the exception of PINs, of course, which are low-entropy and user
provided.
Note that a new enrollment is required for unlocking while in DA
lockdown to function. Existing enrollments are subject to DA lockout.
Fixes: #30330
Mike Yuan [Thu, 4 Jan 2024 15:31:37 +0000 (23:31 +0800)]
shared/vpick: don't say "ptr" for TAKE_PICK_RESULT (struct)
Mike Yuan [Thu, 4 Jan 2024 15:30:53 +0000 (23:30 +0800)]
vpick-tool: sort includes
Lennart Poettering [Mon, 27 Nov 2023 17:19:50 +0000 (18:19 +0100)]
logind: rework the special casing we give root's sessions
Let's add an explicit session class "user-early" for this, so that
change of behaviour on logind is primarily bound to the "class"
property, and not some explicit root checks. This has the benefit that
we can be more fine grained with implying this class: only do so for tty
sessions, not others.
Lennart Poettering [Mon, 27 Nov 2023 17:18:57 +0000 (18:18 +0100)]
logind: explain session class types a bit
Lennart Poettering [Thu, 4 Jan 2024 15:02:20 +0000 (16:02 +0100)]
Merge pull request #30744 from poettering/logind-trivial-tweaks
logind: 3 trivial cleanups
Lennart Poettering [Wed, 29 Nov 2023 10:09:20 +0000 (11:09 +0100)]
logind: do TTY idle logic only for sessions marked as "tty"
Otherwise things might be weird, because background sessions might
become "idle", wich doesn#t really make much sense.
This shouldn't change much in 99% of the cases, but slightly corrects
behaviour as it ensures only "primary"/"foreground" sessions get the
idle logic, i.e. where a user exists that could actually make it
non-idle.
Lennart Poettering [Fri, 24 Nov 2023 12:24:49 +0000 (13:24 +0100)]
update TODO
Lennart Poettering [Wed, 29 Nov 2023 10:07:08 +0000 (11:07 +0100)]
logind: don't make idle action timer accuracy more coarse than timeout
If we allow the timer accuracy to grow larger then the timeout itself
things are very confusing, because people might set a 1s time-out and we
turn that into 30s.
Hence, let's just cut off the 30s accuracy to the time-out itself, so
that we stay close to what users configured.
Yu Watanabe [Thu, 4 Jan 2024 14:28:34 +0000 (23:28 +0900)]
Merge pull request #30739 from poettering/pam-util-many
pam-util: add pam_get_item_many() to shorten some code
Lennart Poettering [Fri, 13 May 2022 22:03:01 +0000 (00:03 +0200)]
homed: when empty username is passed to bus calls, operate on client's UID
Lennart Poettering [Tue, 28 Nov 2023 08:52:17 +0000 (09:52 +0100)]
homed: fix home_count_bad_authentication() counting
We want to cover not only regular bad password entries, but also bad
recovery key entries. Hence let's move the list of errors into the
function, and add more.
Lennart Poettering [Tue, 28 Nov 2023 08:59:30 +0000 (09:59 +0100)]
homed: tone down log message about bad passwords a bit
We usually start out out authentication cycles with an "empty" password
attempt, to give homed the chance to authenticated via any plugged in
tokens. Hence frequently the first attempt will just fail, which is no
reason to complain about.
Yu Watanabe [Thu, 4 Jan 2024 14:25:18 +0000 (23:25 +0900)]
Merge pull request #30610 from YHNdnzj/logind-serialize-pidref
logind: serialize session leader pidfd to fdstore