]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
22 months agofirstboot: fix memory leak 30870/head
Antonio Alvarez Feijoo [Wed, 10 Jan 2024 16:31:49 +0000 (17:31 +0100)] 
firstboot: fix memory leak

22 months agofirstboot: fix typo and add missing option to help text
Antonio Alvarez Feijoo [Wed, 10 Jan 2024 16:29:56 +0000 (17:29 +0100)] 
firstboot: fix typo and add missing option to help text

22 months agokernel-install: clarify what is currently supported with --root and --image
Antonio Alvarez Feijoo [Wed, 10 Jan 2024 10:56:36 +0000 (11:56 +0100)] 
kernel-install: clarify what is currently supported with --root and --image

`list` and `add-all` ignore `--root` or `--image`, working on the running
system instead.
Also improve the error message if `--image` is used.

22 months agotest-network: add test case for MACAddress=none in .netdev and MACAddressPolicy=none...
Yu Watanabe [Wed, 10 Jan 2024 06:01:26 +0000 (15:01 +0900)] 
test-network: add test case for MACAddress=none in .netdev and MACAddressPolicy=none in .link

Prompted by #30813.

22 months agoMerge pull request #30860 from aafeijoo-suse/kernel-install-leak-fix
Lennart Poettering [Wed, 10 Jan 2024 09:47:32 +0000 (10:47 +0100)] 
Merge pull request #30860 from aafeijoo-suse/kernel-install-leak-fix

kernel-install/coredumpctl: fix memory leaks

22 months agotest: skip test_exec_networknamespacepath if netns setup fails
Nick Rosbrook [Tue, 9 Jan 2024 16:40:52 +0000 (11:40 -0500)] 
test: skip test_exec_networknamespacepath if netns setup fails

In some environments, such as a LXD container, the netns setup might
fail because ip netns exec fails trying to mount /sys:

 $ systemd-detect-virt
 lxc
 $ ip link add dummy-test-exec type dummy
 $ ip netns add test-execute-netns
 $ ip netns exec test-execute-netns ip link add dummy-test-ns type dummy
 mount of /sys failed: Operation not permitted

If this setup fails, test_exec_networknamespacepath will fail, so check
the exit codes for these setup calls and skip the test if necessary.

22 months agoMerge pull request #30839 from yuwata/detect-virt-google
Lennart Poettering [Wed, 10 Jan 2024 08:55:44 +0000 (09:55 +0100)] 
Merge pull request #30839 from yuwata/detect-virt-google

detect-virt: add Google Compute Engine support

22 months agoMerge pull request #30849 from YHNdnzj/daemon-modernization
Lennart Poettering [Wed, 10 Jan 2024 08:55:12 +0000 (09:55 +0100)] 
Merge pull request #30849 from YHNdnzj/daemon-modernization

Modernize a couple of daemons that use bus_event_loop_with_idle

22 months agocreds-util: make read_credential_strings_many behave the same as comment
Mike Yuan [Tue, 9 Jan 2024 07:00:53 +0000 (15:00 +0800)] 
creds-util: make read_credential_strings_many behave the same as comment

The comment states "If the specified buffers are already non-NULL
frees them if a credential is found".

Also return 1 if all credentials are found.

22 months agoMerge pull request #30853 from YHNdnzj/mount-accept-fstab-node
Lennart Poettering [Wed, 10 Jan 2024 08:54:18 +0000 (09:54 +0100)] 
Merge pull request #30853 from YHNdnzj/mount-accept-fstab-node

core: allow fstab-style nodes in mount/swap What=

22 months agocoredumpctl: fix memory leak 30860/head
Antonio Alvarez Feijoo [Wed, 10 Jan 2024 08:30:50 +0000 (09:30 +0100)] 
coredumpctl: fix memory leak

22 months agokernel-install: fix memory leak
Antonio Alvarez Feijoo [Wed, 10 Jan 2024 08:20:15 +0000 (09:20 +0100)] 
kernel-install: fix memory leak

22 months agovirt: add Google Compute Engine support 30839/head
Yu Watanabe [Tue, 9 Jan 2024 01:52:49 +0000 (10:52 +0900)] 
virt: add Google Compute Engine support

See https://cloud.google.com/run/docs/container-contract#sandbox

22 months agocore: allow fstab-style nodes in mount/swap What= 30853/head
Mike Yuan [Tue, 9 Jan 2024 14:29:18 +0000 (22:29 +0800)] 
core: allow fstab-style nodes in mount/swap What=

Closes #28989

22 months agocore/load-fragment: use unit_path_printf where appropriate
Mike Yuan [Tue, 9 Jan 2024 16:05:49 +0000 (00:05 +0800)] 
core/load-fragment: use unit_path_printf where appropriate

22 months agoMerge pull request #30844 from keszybz/rename-uid-alloc-range
Lennart Poettering [Tue, 9 Jan 2024 17:51:35 +0000 (18:51 +0100)] 
Merge pull request #30844 from keszybz/rename-uid-alloc-range

Rename uid-alloc-range.[ch] files

22 months agonspawn: drop empty #if/#endif section
Lennart Poettering [Mon, 8 Jan 2024 22:48:01 +0000 (23:48 +0100)] 
nspawn: drop empty #if/#endif section

Follow-up for adb29d588ed8497d2c51f1d6d5e45a1e0d80a1dd

22 months agomkosi: Update to latest
Daan De Meyer [Tue, 9 Jan 2024 10:55:37 +0000 (11:55 +0100)] 
mkosi: Update to latest

The mkosi github action doesn't set up the host machine for building
full images anymore. Instead, only sufficient packages are installed
to be able to build tools trees so we configure a fedora tools tree
to build the actual images.

22 months agolocaled: modernization 30849/head
Mike Yuan [Tue, 9 Jan 2024 11:59:02 +0000 (19:59 +0800)] 
localed: modernization

22 months agohostnamed: use Type=notify
Mike Yuan [Tue, 9 Jan 2024 11:53:18 +0000 (19:53 +0800)] 
hostnamed: use Type=notify

22 months agoimportd: use Type=notify
Mike Yuan [Tue, 9 Jan 2024 11:51:54 +0000 (19:51 +0800)] 
importd: use Type=notify

22 months agotimedated: modernization
Mike Yuan [Tue, 9 Jan 2024 11:48:39 +0000 (19:48 +0800)] 
timedated: modernization

Switch to sd_event_set_signal_exit() and use Type=notify

22 months agomachined,portabled: remove unneeded NOTIFY_STOPPING
Mike Yuan [Tue, 9 Jan 2024 11:43:41 +0000 (19:43 +0800)] 
machined,portabled: remove unneeded NOTIFY_STOPPING

This is done internally by bus_event_loop_with_idle().

22 months agoMerge pull request #30843 from keszybz/test-relative-paths
Luca Boccassi [Tue, 9 Jan 2024 12:23:35 +0000 (12:23 +0000)] 
Merge pull request #30843 from keszybz/test-relative-paths

Use relative paths in test units

22 months agoMerge pull request #30833 from poettering/hostnamed-varlink
Lennart Poettering [Tue, 9 Jan 2024 11:38:58 +0000 (12:38 +0100)] 
Merge pull request #30833 from poettering/hostnamed-varlink

hostnamed: add simple varlink interface

22 months agoupdate TODO
Lennart Poettering [Tue, 9 Jan 2024 11:34:33 +0000 (12:34 +0100)] 
update TODO

22 months agoMerge pull request #30842 from aafeijoo-suse/analyze-q-man-help-fix
Luca Boccassi [Tue, 9 Jan 2024 10:40:19 +0000 (10:40 +0000)] 
Merge pull request #30842 from aafeijoo-suse/analyze-q-man-help-fix

analyze: minor fixes

22 months agoMerge pull request #30826 from YHNdnzj/networkd-wireguard-credential
Lennart Poettering [Tue, 9 Jan 2024 10:26:11 +0000 (11:26 +0100)] 
Merge pull request #30826 from YHNdnzj/networkd-wireguard-credential

networkd/wireguard: support network.wireguard.* credentials

22 months agoTEST-07: minor simplification 30843/head
Zbigniew Jędrzejewski-Szmek [Tue, 9 Jan 2024 09:59:31 +0000 (10:59 +0100)] 
TEST-07: minor simplification

22 months agosrc/basic: rename uid-alloc-range.[ch] to uid-classification.[ch] 30844/head
Zbigniew Jędrzejewski-Szmek [Tue, 9 Jan 2024 09:37:27 +0000 (10:37 +0100)] 
src/basic: rename uid-alloc-range.[ch] to uid-classification.[ch]

We had both uid-range.h and uid-alloc-range.h. The latter now contains helpers
like {uid,gid}_is_{system,dynamic,container}(), uid_for_system_journal(), so
the existing name is outdated. I think the uid-range.[ch] should stay separate
because it has a bunch of helpers for parsing and printing of uid ranges. So
let's rename as in $subject to better reflect the contents of the file and make
the two sets of files harder to confuse.

22 months agosrc/basic: "UidRange" → "UIDRange"
Zbigniew Jędrzejewski-Szmek [Tue, 9 Jan 2024 09:33:49 +0000 (10:33 +0100)] 
src/basic: "UidRange" → "UIDRange"

We don't "uncapitalize" parts of an already-capitalized name when concatenating
words. In particular, we had UidRange in basic/uid-range.h and UGIDAllocationRange
in basic/uid-alloc-range.h, which is annoying.

22 months agotests: use relative paths in ExecStart= and friends
Zbigniew Jędrzejewski-Szmek [Thu, 4 Jan 2024 14:24:52 +0000 (15:24 +0100)] 
tests: use relative paths in ExecStart= and friends

We want to retain *some* of the full paths in order to test more code paths.
But the default should be to use the command name only. This makes the tests
less visually cluttered.

22 months agohostnamed: always include VSockCID property in describe JSON 30833/head
Lennart Poettering [Mon, 8 Jan 2024 15:45:07 +0000 (16:45 +0100)] 
hostnamed: always include VSockCID property in describe JSON

that way clients can distinguish whether there is no cid or whether
hostnamed doesn't support it nicely, by just looking if the prop exists
(but is null) or not.

This is similar how we already handle all other props in the JSON
record.

22 months agohostnamed: add simple Varlink API, too
Lennart Poettering [Mon, 8 Jan 2024 14:13:07 +0000 (15:13 +0100)] 
hostnamed: add simple Varlink API, too

22 months agotestsuite-71: reset startlimit counter manually
Lennart Poettering [Mon, 8 Jan 2024 15:42:00 +0000 (16:42 +0100)] 
testsuite-71: reset startlimit counter manually

The test cases will call quite a lot of "systemctl stop
systemd-hostnamed", hence let's make sure we reset the start limit
counter each time, to not make this eventually fail.

(At other places we disabled the start limit counter, but here I opted
for resetting it manually via 'systemctl reset-failed', to test another
facet of the mechanism)

22 months agoid128-util: do not expose product UUID when running in a container
Lennart Poettering [Mon, 8 Jan 2024 15:14:44 +0000 (16:14 +0100)] 
id128-util: do not expose product UUID when running in a container

When we run in a container we should show our own system's info, not the
hosts hence suppress this info in that case.

This matches the behaviour of most other calls in hostnamed to expose
system properties.

22 months agohostnamed: move bus and event loop object into Context object
Lennart Poettering [Mon, 8 Jan 2024 12:57:41 +0000 (13:57 +0100)] 
hostnamed: move bus and event loop object into Context object

It's a bit weird to keep this separate in particular as the polkit
object is already part of the context.

22 months agohostnamed: port to sd_event_set_signal_exit()
Lennart Poettering [Mon, 8 Jan 2024 12:51:44 +0000 (13:51 +0100)] 
hostnamed: port to sd_event_set_signal_exit()

22 months agoanalyze: man and --help fixes 30842/head
Antonio Alvarez Feijoo [Tue, 9 Jan 2024 09:11:59 +0000 (10:11 +0100)] 
analyze: man and --help fixes

man:
- `verify` requires an argument
- `security` does not require an argument
- `fdstore` requires an argument
- `image-policy` requires an argument

`--help` text:
- missing `image-policy` command
- `cat-config` requires NAME or PATH

22 months agoanalyze: fix -q option
Antonio Alvarez Feijoo [Tue, 9 Jan 2024 08:05:50 +0000 (09:05 +0100)] 
analyze: fix -q option

Follow-up to 52117f5af831a816c47ceebb83c8244ee93b72fe

22 months agonetworkd/wireguard: support network.wireguard.* credentials 30826/head
Mike Yuan [Wed, 27 Dec 2023 13:38:32 +0000 (21:38 +0800)] 
networkd/wireguard: support network.wireguard.* credentials

Closes #26702

22 months agococci: merge mfree.cocci and mfree_return.cocci (#30838)
AtariDreams [Tue, 9 Jan 2024 03:24:37 +0000 (22:24 -0500)] 
cocci: merge mfree.cocci and mfree_return.cocci (#30838)

It makes sense that these should be one file instead of two, as they both involve mfree()

22 months agoman: drop unexpected dot
Yu Watanabe [Tue, 9 Jan 2024 01:52:18 +0000 (10:52 +0900)] 
man: drop unexpected dot

22 months agosimplify bitwise checking (#30722)
AtariDreams [Tue, 9 Jan 2024 01:18:10 +0000 (20:18 -0500)] 
simplify bitwise checking (#30722)

Some of these checks before bitwise operations are redundant and compilers
do not always recognize them, so let's simplify the code to make the intentions
clearer.

22 months agoMerge pull request #30837 from poettering/varlink-over-ssh
Yu Watanabe [Tue, 9 Jan 2024 01:14:03 +0000 (10:14 +0900)] 
Merge pull request #30837 from poettering/varlink-over-ssh

varlink: add "ssh:" transport for talking to remote servers

22 months agosocket-util: modernize socknameinfo_pretty() a bit
Lennart Poettering [Mon, 8 Jan 2024 14:47:55 +0000 (15:47 +0100)] 
socket-util: modernize socknameinfo_pretty() a bit

22 months agodiscover-image: don't accidentally set /run/systemd/nspawn/ access mode too strict
Lennart Poettering [Fri, 5 Jan 2024 21:20:32 +0000 (22:20 +0100)] 
discover-image: don't accidentally set /run/systemd/nspawn/ access mode too strict

mkdir_p() uses the specified access mode for all dirs that are missing,
hence if we call it on /run/systemd/nspawn/locking and
/run/systemd/nspawn/ doesn't exist yet, we#d create it 0700 here. But
that was never the intention, and all other code creating that dir sets
the mode to 0755. Fix this here to match the rest.

22 months agosd-bus: also intrepret $SYSTEMD_SSH env var 30837/head
Lennart Poettering [Mon, 8 Jan 2024 22:06:48 +0000 (23:06 +0100)] 
sd-bus: also intrepret $SYSTEMD_SSH env var

To make things symmetric to the $SYSTEMD_SSH logic that the varlink
transport supports, let's also honour such a variable in sd-bus when
picking ssh transport.

22 months agovarlink: add "ssh:" transport
Lennart Poettering [Mon, 8 Jan 2024 21:26:17 +0000 (22:26 +0100)] 
varlink: add "ssh:" transport

This uses openssh 9.4's -W support for AF_UNIX. Unfortunately older versions
don't work with this, and I couldn#t figure a way that would work for
older versions too, would not be racy and where we'd still could keep
track of the forked off ssh process.

Unfortunately, on older versions -W will just hang (because it tries to
resolve the AF_UNIX path as regular host name), which sucks, but hopefully this
issue will go away sooner or later on its own, as distributions update.

Fedora is still stuck at 9.3 at the time of posting this (even on
Fedora), even though 9.4, 9.5, 9.6 have all already been released by
now.

Example:
        varlinkctl call -j ssh:root@somehost:/run/systemd/io.systemd.Credentials io.systemd.Credentials.Encrypt '{"text":"foobar"}'

22 months agovarlink: turn off O_NONBLOCK in exec: transport
Lennart Poettering [Mon, 8 Jan 2024 17:49:12 +0000 (18:49 +0100)] 
varlink: turn off O_NONBLOCK in exec: transport

If we invoke our own varlink implementation we'll turn on O_NONBLOCK
right-away again, hence there is little point in turning it off,
however, I generally think we probably should always path this fd as
blocking, since that is the default after all, and invoked processes
might want to use it like that.

Or to see this differently: I think the varlink fd passed for activation
in many ways is similar to and as fundamental as stdin/stderr/stdout,
hence should probably be synchronous by default.

22 months agoprocess-util: turn off O_NONBLOCK on stdio fds when rearranging fds
Lennart Poettering [Mon, 8 Jan 2024 21:25:22 +0000 (22:25 +0100)] 
process-util: turn off O_NONBLOCK on stdio fds when rearranging fds

We often create our fds O_NONBLOCK, but when we want to invoke some
program with them as stdin/stdout/stderr we really should turn it off
again.

22 months agoenv-util: add new setenvf() helper
Lennart Poettering [Mon, 8 Jan 2024 17:48:53 +0000 (18:48 +0100)] 
env-util: add new setenvf() helper

And convert some pieces of code over.

22 months agohexdecoct: make unbase64mem and unhexmem always use SIZE_MAX
Mike Yuan [Mon, 8 Jan 2024 09:22:33 +0000 (17:22 +0800)] 
hexdecoct: make unbase64mem and unhexmem always use SIZE_MAX

22 months agotmpfiles: fix memory leak in arg_exclude_prefixes
Antonio Alvarez Feijoo [Mon, 8 Jan 2024 15:08:26 +0000 (16:08 +0100)] 
tmpfiles: fix memory leak in arg_exclude_prefixes

When using the `--image` or `-E` options, `arg_exclude_prefixes` is extended via
the `exclude_default_prefixes` function, which calls `strv_extend_strv`, adding
values using `strdup` that must be freed on exit.

Also changing `arg_include_prefixes` to use the same model, although there is no
leak here.

22 months agobus-polkit: fix memory leak
Lennart Poettering [Mon, 8 Jan 2024 14:54:42 +0000 (15:54 +0100)] 
bus-polkit: fix memory leak

We need to destroy the hashmap entry keyed by the varlink object in case
this is a varlink request.

Follow-up for: d04c1a1c8e7c95daa483d8d52d5fc4c25fbc67f2

22 months agotimesync: IPTOS_LOWDELAY --> IPTOS_DSCP_EF
Cristian Rodríguez [Sun, 7 Jan 2024 22:49:45 +0000 (19:49 -0300)] 
timesync: IPTOS_LOWDELAY --> IPTOS_DSCP_EF

Deprecated IPTOS_LOWDELAY is ignored by most of today's
network equipment that only ever care about DSCP.

Use the DSCP found in other NTP implementations and set the appropiate
TCLASS for IPv6.

22 months agovirt: fix detection of avx2 and friends
Yu Watanabe [Mon, 8 Jan 2024 10:59:32 +0000 (19:59 +0900)] 
virt: fix detection of avx2 and friends

To get the CPUID with EAX=7, we need explicitly set 0 to ECX.

From Intel® Architecture Instruction Set Extensions Programming
Reference and Related Specifications,
===
Leaf 07H output depends on the initial value in ECX.
If ECX contains an invalid sub leaf index, EAX/EBX/ECX/EDX return 0
===

Fixes #30822.

22 months agoMerge pull request #30827 from poettering/network-generator-creds
Lennart Poettering [Mon, 8 Jan 2024 14:02:02 +0000 (15:02 +0100)] 
Merge pull request #30827 from poettering/network-generator-creds

network-generator: pick up .netdev/.link/.network configuration via c…

22 months agoMerge pull request #30787 from poettering/hostnamed-cid
Lennart Poettering [Mon, 8 Jan 2024 13:36:57 +0000 (14:36 +0100)] 
Merge pull request #30787 from poettering/hostnamed-cid

hostnamed: expose AF_VSOCK CID among hostnamed/hostnamectl info

22 months agonetwork-generator: pick up .netdev/.link/.network configuration via credentials 30827/head
Lennart Poettering [Mon, 8 Jan 2024 10:25:56 +0000 (11:25 +0100)] 
network-generator: pick up .netdev/.link/.network configuration via credentials

To me this is the last major basic functionality that couldn't be
configured via credentials: the network.

We do not invent any new format for this, but simply copy relevant creds
1:1 into /run/systemd/network/ to open up the full functionality of
networkd to VM hosts.

22 months agohostnamed: expose local AF_VSOCK CID among other host info 30787/head
Lennart Poettering [Fri, 5 Jan 2024 15:34:33 +0000 (16:34 +0100)] 
hostnamed: expose local AF_VSOCK CID among other host info

This is a host identifier of major relevance, since it is how you
connect to this system if it is a VM, hence expose this nicely.

22 months agosocket-util: add helper for querying the local AF_VSOCK CID
Lennart Poettering [Fri, 5 Jan 2024 15:33:58 +0000 (16:33 +0100)] 
socket-util: add helper for querying the local AF_VSOCK CID

22 months agoMerge pull request #30815 from yuwata/resolve-ixfr
Yu Watanabe [Sun, 7 Jan 2024 23:49:15 +0000 (08:49 +0900)] 
Merge pull request #30815 from yuwata/resolve-ixfr

resolve: NSCOUNT of DNS query may not be zero

22 months agotest: check how systemd-resolved deals with zone transfers 30815/head
Frantisek Sumsal [Sun, 7 Jan 2024 21:22:52 +0000 (22:22 +0100)] 
test: check how systemd-resolved deals with zone transfers

Even though systemd-resolved doesn't support zone transfers (AXFR/IXFR),
it should still just refuse such requests without choking on them.

See: https://github.com/systemd/systemd/pull/30809#issuecomment-1880102804

22 months agotest: merge config sections
Frantisek Sumsal [Sun, 7 Jan 2024 12:32:14 +0000 (13:32 +0100)] 
test: merge config sections

22 months agotest: zone-check with --force to fail on warnings
Frantisek Sumsal [Sun, 7 Jan 2024 12:29:50 +0000 (13:29 +0100)] 
test: zone-check with --force to fail on warnings

22 months agoresolve: NSCOUNT of DNS query may not be zero
Yu Watanabe [Sun, 7 Jan 2024 17:02:33 +0000 (02:02 +0900)] 
resolve: NSCOUNT of DNS query may not be zero

This also separates check for DNS and LLMNR, as the existing comments
are for LLMNR, not DNS. And this moves the comment for mDNS.

Fixes the issue reported at
https://github.com/systemd/systemd/pull/30809#issuecomment-1880102804.

22 months agologind: don't use assertion for deserialized_pid
Mike Yuan [Fri, 5 Jan 2024 17:47:20 +0000 (01:47 +0800)] 
logind: don't use assertion for deserialized_pid

Follow-up for 9d5b6901007e6717c6a37c49eb73bc0260e93893

Otherwise if session_load() went wrong, and we got pidfd
from fdstore, the assertion is triggered.

22 months agotest: sync the "foobaz" namespace as well
Frantisek Sumsal [Sat, 6 Jan 2024 10:45:23 +0000 (11:45 +0100)] 
test: sync the "foobaz" namespace as well

Otherwise we might be too fast, resulting in failed namespace check
later:

[    7.351453] testsuite-44.sh[401]: + journalctl --list-namespaces
[    7.351784] testsuite-44.sh[402]: + grep foobar
[    7.358851] testsuite-44.sh[402]: foobar
[    7.359598] testsuite-44.sh[403]: + journalctl --list-namespaces
[    7.359974] testsuite-44.sh[404]: + grep foobaz
[    7.369882] systemd[1]: testsuite-44.service: Failed with result 'exit-code'.

Follow-up for 68f66a1713.

22 months agoTEST-24-CRYPTSETUP: depend on OpenSSL for testing PKCS#11 tokens
Vladimir Stoiakin [Sat, 6 Jan 2024 13:59:56 +0000 (16:59 +0300)] 
TEST-24-CRYPTSETUP: depend on OpenSSL for testing PKCS#11 tokens

22 months agorepart: don't crash when looping over dropped partitions
Frantisek Sumsal [Sat, 6 Jan 2024 15:07:42 +0000 (16:07 +0100)] 
repart: don't crash when looping over dropped partitions

Properly skip over dropped partitions and make sure they don't affect
the final graphical output (for example by leaving empty "spaces" where
their definition file name would otherwise be).

Resolves: #30742

22 months agoMerge pull request #30803 from yuwata/network-route-parser-trivial-cleanups
Yu Watanabe [Sat, 6 Jan 2024 20:26:06 +0000 (05:26 +0900)] 
Merge pull request #30803 from yuwata/network-route-parser-trivial-cleanups

network/route: trivial cleanups for conf parsers

22 months agonetwork/link: always join to the main interface when we receive IFLA_MASTER attribute
Yu Watanabe [Thu, 4 Jan 2024 16:58:01 +0000 (01:58 +0900)] 
network/link: always join to the main interface when we receive IFLA_MASTER attribute

Otherwise, e.g. when we enumerate a bridge port first, then the bridge
main interface, then the port cannot be managed by the main interface.

Fixes #30682.

22 months agotest: reinitialize arg_transport before parsing arguments
Frantisek Sumsal [Sat, 6 Jan 2024 12:57:09 +0000 (13:57 +0100)] 
test: reinitialize arg_transport before parsing arguments

Since libfuzzer feeds a single fuzzing process with multiple inputs, we
might carry over arg_transport from a previous invocation, tripping over
the assert in acquire_bus():

+----------------------------------------Release Build Stacktrace----------------------------------------+
Assertion 'transport != BUS_TRANSPORT_REMOTE || runtime_scope == RUNTIME_SCOPE_SYSTEM' failed at src/shared/bus-util.c:284, function bus_connect_transport(). Aborting.
AddressSanitizer:DEADLYSIGNAL
=================================================================
==2739==ERROR: AddressSanitizer: ABRT on unknown address 0x00000ab3 (pc 0xf7f52509 bp 0xffdf74cc sp 0xffdf74b0 T0)
SCARINESS: 10 (signal)
    #0 0xf7f52509 in linux-gate.so.1
    #1 0xf703b415 in raise
    #2 0xf70233f6 in abort
    #3 0xf772ac0a in log_assert_failed systemd/src/basic/log.c:968:9
    #4 0xf77300d5 in log_assert_failed_return systemd/src/basic/log.c:987:17
    #5 0xf7432bbf in bus_connect_transport systemd/src/shared/bus-util.c:284:9
    #6 0x818cd17 in acquire_bus systemd/src/systemctl/systemctl-util.c:53:29
    #7 0x815fd3c in help_boot_loader_entry systemd/src/systemctl/systemctl-logind.c:431:13
    #8 0x819ca87 in systemctl_parse_argv systemd/src/systemctl/systemctl.c:863:37
    #9 0x8197632 in systemctl_dispatch_parse_argv systemd/src/systemctl/systemctl.c:1137:16
    #10 0x813328d in LLVMFuzzerTestOneInput systemd/src/systemctl/fuzz-systemctl-parse-argv.c:54:13
    #11 0x81bbe7e in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned int) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
    #12 0x81bb5b8 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned int, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
    #13 0x81bd42d in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:826:7
    #14 0x81bd62e in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:857:3
    #15 0x81ac84c in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned int)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
    #16 0x81d65c7 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
    #17 0xf7024ed4 in __libc_start_main
    #18 0x806bdb5 in _start

Resolves: #30802

22 months agoTODO: drop some implemented entries
Mike Yuan [Sat, 6 Jan 2024 17:46:09 +0000 (01:46 +0800)] 
TODO: drop some implemented entries

22 months agonetwork/route-metric: unify error messages 30803/head
Yu Watanabe [Fri, 5 Jan 2024 20:36:48 +0000 (05:36 +0900)] 
network/route-metric: unify error messages

22 months agonetwork/route-metric: pass attribute type to conf parsers
Yu Watanabe [Sat, 6 Jan 2024 04:07:11 +0000 (13:07 +0900)] 
network/route-metric: pass attribute type to conf parsers

The passed attribute type will be used later.

This also
- rename conf parsers,
- sort gperf entries by the attr type.

No functional change, just refactoring and preparation for later commits.

22 months agonetwork/route: move several conf parsers to networkd-route-metric.c and networkd...
Yu Watanabe [Fri, 5 Jan 2024 20:08:40 +0000 (05:08 +0900)] 
network/route: move several conf parsers to networkd-route-metric.c and networkd-route-nexthop.c

This also split config_parse_route_boolean() into two:
for GatewayOnline= and boolean route metrics.

No functional change, just refactoring and preparation for later commits.

22 months agonetwork/route: rename n -> route in conf parsers
Yu Watanabe [Fri, 5 Jan 2024 19:44:40 +0000 (04:44 +0900)] 
network/route: rename n -> route in conf parsers

22 months agonetwork/route: do not invalidate [Route] section when an empty string is assigned...
Yu Watanabe [Fri, 5 Jan 2024 20:23:06 +0000 (05:23 +0900)] 
network/route: do not invalidate [Route] section when an empty string is assigned to MultiPathRoute=

22 months agoMerge pull request #30801 from yuwata/test-network-cleanups
Frantisek Sumsal [Sat, 6 Jan 2024 10:26:39 +0000 (11:26 +0100)] 
Merge pull request #30801 from yuwata/test-network-cleanups

test-network: several cleanups

22 months agotest-network: do not call networkctl if networkd is in failed state 30801/head
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.

22 months agotest-network: introduce networkctl() and friends
Yu Watanabe [Sat, 6 Jan 2024 03:33:09 +0000 (12:33 +0900)] 
test-network: introduce networkctl() and friends

22 months agotest-network: use read_networkd_log() at one more place
Yu Watanabe [Sat, 6 Jan 2024 02:32:03 +0000 (11:32 +0900)] 
test-network: use read_networkd_log() at one more place

22 months agotest-network: sync journal before read
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.

22 months agonspawn: lock down access to notify socket a bit
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.

22 months agocore: escape spaces in paths during serialization
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

22 months agoMerge pull request #30794 from poettering/parse-vsock-better
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

22 months agoudevadm: allow to override the default log level by environment variable
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.

22 months agoMerge pull request #30796 from mrc0mmand/journalctl-namespaces
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=

22 months agodev-setup: rework make_inaccessible_nodes() around openat() and friends
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()

22 months agoMerge pull request #30775 from yuwata/network-nexthop-is-ready
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

22 months agoparse-helpers: allow port 0 for socket bind items
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.

22 months agoMerge pull request #30791 from poettering/nspawn-restrict-run-host
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

22 months agonspawn: add new common make_run_host() helper
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.

22 months agosocket-util: add more careful parsers for AF_VSOCK cid/port 30794/head
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.

22 months agomissing: add a bunch of vsock related defines
Lennart Poettering [Fri, 5 Jan 2024 21:29:15 +0000 (22:29 +0100)] 
missing: add a bunch of vsock related defines

22 months agoMerge pull request #30790 from poettering/null-creds-allow-with-tpm
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

22 months agoshell-completion: provide completion for journalctl --namespace= 30796/head
Frantisek Sumsal [Fri, 5 Jan 2024 17:58:43 +0000 (18:58 +0100)] 
shell-completion: provide completion for journalctl --namespace=

Resolves: #30381

22 months agoshell-completion: fix mixed indent
Frantisek Sumsal [Fri, 5 Jan 2024 17:58:26 +0000 (18:58 +0100)] 
shell-completion: fix mixed indent