systemd/.git
4 years agotest: drop log_trace() in test-random-util v248.1
Yu Watanabe [Wed, 5 May 2021 18:47:58 +0000 (03:47 +0900)]
test: drop log_trace() in test-random-util

It provides almost no inoformation. Moreover, it massively increases
logs, and firefox cannot show the results of Ubuntu CIs due to this.

(cherry picked from commit 3d396b2837445cf2fbe00c12aed2d9967d9e9d23)

4 years agosd-device: reject empty driver name
Zbigniew Jędrzejewski-Szmek [Wed, 5 May 2021 15:02:49 +0000 (17:02 +0200)]
sd-device: reject empty driver name

If ":" was the last char in the string, we would call access() on ".../drivers/", which
would pass. It probably doesn't matter, but let's reject this anyway.

(cherry picked from commit 52a89a5f08230439f07c043d59ded1270842137b)

4 years agosd-device: use memdupa_suffix0() where appropriate
Zbigniew Jędrzejewski-Szmek [Wed, 5 May 2021 14:57:39 +0000 (16:57 +0200)]
sd-device: use memdupa_suffix0() where appropriate

No functional change intended.

(cherry picked from commit 3e2d0c6ab2abc0ab85440580931b2462bb73cfda)

4 years agosd-device: minor optimization for sd_device_new_from_device_id()
Yu Watanabe [Sun, 7 Mar 2021 06:24:15 +0000 (15:24 +0900)]
sd-device: minor optimization for sd_device_new_from_device_id()

(cherry picked from commit ff7a8d2938b24cb7ca7b69900395ecf837a43a23)

4 years agosd-device: do no allocate strings of unknown length on the stack
Zbigniew Jędrzejewski-Szmek [Wed, 5 May 2021 14:49:41 +0000 (16:49 +0200)]
sd-device: do no allocate strings of unknown length on the stack

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33881.

Not only we would duplicate unknown input on the stack, we would do it
over and over. So let's first check that the input has reasonable length,
but also allocate just one fixed size buffer.

(cherry picked from commit e17c95af8e450caacde692875b30675cea75211f)

4 years agomeson: don't fail if latest tag's commit is signed
наб [Fri, 16 Apr 2021 11:00:37 +0000 (13:00 +0200)]
meson: don't fail if latest tag's commit is signed

Today this is v248 with 938bdfc0fa737d86eb3ecc70506e11e5f740e0dc, which,
if you don't know about the github webflow key fails to configure with
  meson.build:724:8: ERROR:  String "gpg: Signature made Tue 30 Mar 2021 22:59:02 CEST\ngpg:                using RSA key 4AEE18F83AFDEB23\ngpg: Can't check signature: No public key\n1617137942\n" cannot be converted to int
or, if you do, with
  meson.build:724:8: ERROR:  String 'gpg: Signature made Tue 30 Mar 2021 22:59:02 CEST\ngpg:                using RSA key 4AEE18F83AFDEB23\ngpg: Good signature from "GitHub (web-flow commit signing) <noreply@github.com>" [unknown]\ngpg: WARNING: This key is not certified with a trusted signature!\ngpg:          There is no indication that the signature belongs to the owner.\nPrimary key fingerprint: 5DE3 E050 9C47 EA3C F04A  42D3 4AEE 18F8 3AFD EB23\n1617137942\n' cannot be converted to int

(cherry picked from commit 2d945027244c02fab8d388353f034a2d82ca151b)

4 years agocore: remove spurious % in dump string
Zbigniew Jędrzejewski-Szmek [Wed, 7 Apr 2021 08:52:30 +0000 (10:52 +0200)]
core: remove spurious % in dump string

(cherry picked from commit 0f6bb1ed05ceba91d8529c74379613ec9ebf50dc)

4 years agocore: apply LogLevelMax to messages about units
Ryan Hendrickson [Fri, 30 Apr 2021 16:47:10 +0000 (12:47 -0400)]
core: apply LogLevelMax to messages about units

This commit applies the filtering imposed by LogLevelMax on a unit's
processes to messages logged by PID1 about the unit as well.

The target use case for this feature is a service that runs on a timer
many times an hour, where the system administrator decides that writing
a generic success message to the journal every few minutes or seconds
adds no diagnostic value and isn't worth the clutter or disk I/O.

(cherry picked from commit c2503e359a3a03b73acce0a92d27b1b8f54ff92c)

4 years agonetwork: can: do not warn if link does not exist anymore
Yu Watanabe [Thu, 29 Apr 2021 22:00:45 +0000 (07:00 +0900)]
network: can: do not warn if link does not exist anymore

(cherry picked from commit ed52cce33f588bbeb3d7f5d7f5e76a85cf6e4f89)

4 years agonetwork: drop duplicated link_up_can()
Yu Watanabe [Thu, 29 Apr 2021 21:57:15 +0000 (06:57 +0900)]
network: drop duplicated link_up_can()

(cherry picked from commit f282ce20aaa767f5395b065f2be587cdef3e5491)

4 years agosd-bus: fix vtable named argument logic
Yu Watanabe [Thu, 29 Apr 2021 19:00:02 +0000 (04:00 +0900)]
sd-bus: fix vtable named argument logic

Fixes #19468.

(cherry picked from commit c068a17f6a18d3ebfabe88fc49e24a923d0bdd0a)

4 years agoClarify that these values are in bytes
Steve Bonds [Thu, 25 Mar 2021 14:40:39 +0000 (07:40 -0700)]
Clarify that these values are in bytes

Similar to `ProcessSizeMax`. The defaults in percentages can be misunderstood to mean the values for these parameters will be in percentages.

(cherry picked from commit 88c2c8a0ba13de31061a22a352410c18ffacab9a)

4 years agoman: importd also provides the option of import-fs for machinectl (#19477)
syyhao1994 [Fri, 30 Apr 2021 07:55:50 +0000 (15:55 +0800)]
man: importd also provides the option of import-fs for machinectl (#19477)

(cherry picked from commit 96ae72ce1ad41674078e45b197df35ad18041dc2)

4 years agosystemd-coredump: Add conflict with shutdown.target
Alexander Sverdlin [Sun, 18 Apr 2021 23:53:45 +0000 (01:53 +0200)]
systemd-coredump: Add conflict with shutdown.target

Otherwise a coredump started at the inconvinient moment can stop
shutdown.target leaving the system in a halfway-down state:

Pulling in shutdown.target/start from systemd-poweroff.service/start
Added job shutdown.target/start to transaction.
...
Keeping job shutdown.target/start because of systemd-poweroff.service/start
...
[  OK  ] Stopped target Remote File Systems.
shutdown.target: starting held back, waiting for: systemd-networkd.socket
sysinit.target: stopping held back, waiting for: remount_tmp.service
systemd-coredump.socket: Incoming traffic
...
systemd-coredump@0-243-0.service: Trying to enqueue job systemd-coredump@0-243-0.service/start/replace
Added job systemd-coredump@0-243-0.service/start to transaction.
Pulling in systemd-journald.socket/start from systemd-coredump@0-243-0.service/start
Added job systemd-journald.socket/start to transaction.
Pulling in system.slice/start from systemd-journald.socket/start
Added job system.slice/start to transaction.
Pulling in -.slice/start from system.slice/start
Added job -.slice/start to transaction.
Pulling in system-systemd\x2dcoredump.slice/start from systemd-coredump@0-243-0.service/start
Added job system-systemd\x2dcoredump.slice/start to transaction.
Pulling in system.slice/start from system-systemd\x2dcoredump.slice/start
Pulling in shutdown.target/stop from system-systemd\x2dcoredump.slice/start
Added job shutdown.target/stop to transaction.
...
Keeping job systemd-poweroff.service/stop because of umount.target/stop
Keeping job shutdown.target/stop because of systemd-coredump@0-243-0.service/start

(cherry picked from commit 4e947bd04944e58df4103eee4cb8180b5008f143)

4 years agonetwork: dhcp4: downgrade log level when interface is removed
Yu Watanabe [Wed, 28 Apr 2021 15:07:09 +0000 (00:07 +0900)]
network: dhcp4: downgrade log level when interface is removed

(cherry picked from commit e558d4f47a9c01b007fc193cabcf0dea8370a5f1)

4 years agonetwork: drop meaningless bitfield specifiers
Yu Watanabe [Mon, 26 Apr 2021 14:55:09 +0000 (23:55 +0900)]
network: drop meaningless bitfield specifiers

(cherry picked from commit 4cbd379e018c15d2369287adee59d1484eaedcc4)

4 years agoset boot time from monotonic time (#19444)
caoxia2008cxx [Thu, 29 Apr 2021 09:05:01 +0000 (17:05 +0800)]
set boot time from monotonic time (#19444)

utmp: calculate boot timestamp from monotonic timestamp instead of realtime timestamp
(cherry picked from commit f813b62316395205f4c744cde43885081b5f88ae)

4 years agonetwork: ndisc: fix ipv6 route preference for routes with Gateway=_ipv6ra
Yu Watanabe [Wed, 28 Apr 2021 13:26:48 +0000 (22:26 +0900)]
network: ndisc: fix ipv6 route preference for routes with Gateway=_ipv6ra

(cherry picked from commit 086a351ad9c39f49d050822b28e22aa461edec29)

4 years agonetwork: neighbor: downgrade log level
Yu Watanabe [Wed, 28 Apr 2021 13:18:45 +0000 (22:18 +0900)]
network: neighbor: downgrade log level

As commented in the code, kernel sends messages about neighbors after
a link is removed.

(cherry picked from commit 27a213392f642fdd2a9dbce914bbfda9a72aafc1)

4 years agonetwork: link: downgrade log level
Yu Watanabe [Wed, 28 Apr 2021 13:17:39 +0000 (22:17 +0900)]
network: link: downgrade log level

The error is harmless, and will be ignored. Let's downgrade log level.

(cherry picked from commit 83e7c37b19bd36c78b235ac3047b758fcf82ad78)

4 years agonetwork: neighbor: Always add neighbors with replace
William A. Kennington III [Tue, 27 Apr 2021 08:25:58 +0000 (01:25 -0700)]
network: neighbor: Always add neighbors with replace

We were duplicating setting flags for the message and a combination of
NLM_F_APPEND and NLM_F_CREATE which does not make sense. We should have
been using NLM_F_REPLACE and NLM_F_CREATE since the kernel can
dynamically create neighbors prior to us adding an entry. Otherwise, we
can end up with cases where the message will time out after ~25s even
though the neighbor still gets added. This delays the rest of the setup
of the interface even though the error is ultimately ignored.

(cherry picked from commit 192a9d95ea3e058afd824d38a9cea16ad0a84a57)

4 years agosystem-conf: drop reference to ShutdownWatchdogUsec=
Franck Bui [Tue, 27 Apr 2021 08:59:24 +0000 (10:59 +0200)]
system-conf: drop reference to ShutdownWatchdogUsec=

Commit 65224c1d0e50667a87c2c4f840c49d4918718f80 renamed ShutdownWatchdogUsec
into RebootWatchdogUsec but left a reference of ShutdownWatchdogUsec in
system.conf.

(cherry picked from commit 45b1fc3a88b2f5102ecabfabdf0ee4f175aecd64)

4 years agosystemctl: hide some empty properties without --all
Frantisek Sumsal [Mon, 26 Apr 2021 20:03:19 +0000 (22:03 +0200)]
systemctl: hide some empty properties without --all

Fixes: #19423
(cherry picked from commit 1ceaad69378272c64da4ecaab0d59ebb7a92ca0a)

4 years agotest-unit-serialize: add a very basic test that command deserialization works
Zbigniew Jędrzejewski-Szmek [Fri, 23 Apr 2021 10:37:09 +0000 (12:37 +0200)]
test-unit-serialize: add a very basic test that command deserialization works

We should test both serialization and deserialization works properly.
But the serialization/deserialization code is deeply entwined with the
manager state, and I think quite a bit of refactoring will be required before
this is possible. But let's at least add this simple test for now.

(cherry picked from commit 35243b77360c9cc7d1446617fe4fd304bfdecd4c)

4 years agocore/service: also reject deserialized commands with no argv[0]
Zbigniew Jędrzejewski-Szmek [Fri, 23 Apr 2021 10:40:07 +0000 (12:40 +0200)]
core/service: also reject deserialized commands with no argv[0]

I'm pretty sure that bad things would happen later on.

(cherry picked from commit 90204792461030dbc8645d8511e7ac8d1b4f1ca2)

4 years agocore/service: fix deserialization of non-absolute commands
Zbigniew Jędrzejewski-Szmek [Fri, 23 Apr 2021 10:39:03 +0000 (12:39 +0200)]
core/service: fix deserialization of non-absolute commands

We'd fail with:
Apr 23 10:58:26 systemd[1]: Deserializing state...
Apr 23 10:58:26 systemd[1]: testsuite-01.service: Failed to parse serialized command "ExecStart 0 sh "sh" "-e" "-x" "-c" "systemctl --state=failed --no-legend --no-pager >/failed ; systemctl daemon-reload ; echo OK >/testok"": Invalid argument
Apr 23 10:58:26 systemd[1]: testsuite-01.service: Reinstalled deserialized job testsuite-01.service/start as 209

This was missed in 5008da1ec1, and apparently nobody noticed until now :(

(cherry picked from commit 1a128a468ddd1070651478c36eae76e31f580b67)

4 years agonetwork: update comment and log message
Yu Watanabe [Mon, 26 Apr 2021 00:03:33 +0000 (09:03 +0900)]
network: update comment and log message

After 4b30f2e135ee84041bb597edca7225858f4ef4fb, reading stable_secret
sysctl property fails with -ENOMEM, instead of -EIO.
This is due to read_full_virtual_file() uses read() as the backend while
read_one_line_file() uses fgetc(). And each functions return different
error on fails.

Anyway, the failure is harmless here. So, the log message and comment is
updated.

Closes one of the issues in #19410.

(cherry picked from commit 0e27527170aa0179f2a4b3b55b78ddc049f815b9)

4 years agocore: allow services stuck in reloading state to exit
Peter Morrow [Tue, 13 Apr 2021 16:20:42 +0000 (17:20 +0100)]
core: allow services stuck in reloading state to exit

If a service is in reloading state but has exited do not delay
the final exit until the service reload timer expires. Instead allow
the service to exit immediately since we can't expect the service to
ever transition out of reloading state.

For example if a service sent RELOADING=1 but crashed before it could
send READY=1 then it should be restarted if the service had
Restart= configured.

Signed-off-by: Peter Morrow <pemorrow@linux.microsoft.com>
(cherry picked from commit bbe19f68846bb3cd5fcf3e4f612268064df53b53)

4 years agofix: point to the correct drop-ins subdirectory for confs
Jóhann B. Guðmundsson [Wed, 21 Apr 2021 21:09:29 +0000 (21:09 +0000)]
fix: point to the correct drop-ins subdirectory for confs

(cherry picked from commit eb34cce1787259de4cea1430fa017b6bd25bc4c1)

4 years agojournald: Retry if posix_fallocate returned -1 (EINTR)
Igor Zhbanov [Tue, 20 Apr 2021 17:22:28 +0000 (17:22 +0000)]
journald: Retry if posix_fallocate returned -1 (EINTR)

On some conditions (particularly when mobile CPUs are going to sleep),
the posix_fallocate(), which is called when a new journal file is allocated,
can return -1 (EINTR). This is counted as a fatal error. So the journald
closes both old and journals, and simply throwing away further incoming
events, because of no log files open.

Introduce posix_fallocate_loop() that restarts the function in the case
of EINTR. Also let's make code base more uniform by returning negative
values on error.

Fix assert in test-sigbus.c that incorrectly counted positive values as
success. After changing the function return values, that will actually work.

Fixes: #19041

Signed-off-by: Igor Zhbanov <i.zhbanov@omprussia.ru>
(cherry picked from commit 4c54768c9732532f4e56eab1be3e5474769e0d7a)

4 years agoman: dedent examples in sd-id128 to 2 columns
Zbigniew Jędrzejewski-Szmek [Mon, 19 Apr 2021 13:09:22 +0000 (15:09 +0200)]
man: dedent examples in sd-id128 to 2 columns

In man pages, horizontal space it at premium, and everything should
generally be indented with 2 spaces to make it more likely that the
examples fit on a user's screen.

C.f. 798d3a524ea57aaf40cb53858aaa45ec702f012d.

(cherry picked from commit e0a41aa4c6674f04723388c05b7cd81cc2ffd613)

4 years agojournald: enforce longer line length limit during "setup" phase of stream protocol
Yangyang Shen [Wed, 24 Mar 2021 13:23:01 +0000 (21:23 +0800)]
journald: enforce longer line length limit during "setup" phase of stream protocol

This PR made modification on Lennart Poettering's basis. Fix the LineMax's function failure problem.

Signed-off-by: Yangyang Shen <shenyangyang4@huawei.com>
(cherry picked from commit 80e9720616df0eeaba75874fd86fbfbe8b7a03a7)

4 years agosd-device: use right clock when comparing initialization usec
Lennart Poettering [Tue, 20 Apr 2021 13:56:03 +0000 (15:56 +0200)]
sd-device: use right clock when comparing initialization usec

we actually use CLOCK_MONOTONIC for the timestamp, hence when
comparing/subtracting it from the current time, also use
CLOCK_MONOTONIC.

(cherry picked from commit 02ef01ade3b16c05dfc8698181d7f562f4934ef3)

4 years agosd-device: use right type for usec_initialized
Lennart Poettering [Tue, 20 Apr 2021 15:06:21 +0000 (17:06 +0200)]
sd-device: use right type for usec_initialized

(cherry picked from commit a156eb89c827206ee5b51d53016ba63be0c90449)

4 years agodocument DefaultOOMPolicy
Miroslav Suchý [Tue, 20 Apr 2021 08:23:01 +0000 (10:23 +0200)]
document DefaultOOMPolicy

the `man systemd.service` say:
   Defaults to the setting DefaultOOMPolicy= in systemd-system.conf(5) is set to
but there is no such line in this config.
This is the default value I extracted from
   systemctl show --property=DefaultOOMPolicy

(cherry picked from commit 0084d4f6b58f70c9955fa2259c29d65d87e1e855)

4 years agowifi-util: do not set zero errno to log_debug_errno()
Yu Watanabe [Tue, 20 Apr 2021 00:23:33 +0000 (09:23 +0900)]
wifi-util: do not set zero errno to log_debug_errno()

(cherry picked from commit 66205cb3f597e43c8446d122fa4cc849c4f101d7)

4 years agomount-util: make umount_and_rmdir_and_freep() cleanup handler deal with NULL
Lennart Poettering [Mon, 19 Apr 2021 20:50:32 +0000 (22:50 +0200)]
mount-util: make umount_and_rmdir_and_freep() cleanup handler deal with NULL

(cherry picked from commit 4d686e6b0b12ffe9a1104ac23fee97c0de8a0730)

4 years agodissect: ext4 and loopback files are unimpressed by read-only access
Lennart Poettering [Mon, 19 Apr 2021 20:47:33 +0000 (22:47 +0200)]
dissect: ext4 and loopback files are unimpressed by read-only access

Even if we set up a loopback device read-only and mount it read-only
this means nothing, ext4 will still write through to the backing storage
file.

Yes, I lost 6h debugging time on this.

Apparently, we have to specify "norecovery" when mounting such file
systems, to force them into truly read-only mode. Let's do so.

(cherry picked from commit b620bf332f575ba9b8e4cd60c93446a0c35c23e8)

4 years agorepart: deal with empty partition label sensibly
Lennart Poettering [Fri, 19 Mar 2021 21:45:15 +0000 (22:45 +0100)]
repart: deal with empty partition label sensibly

libfdisk appears to return NULL when encountering an empty partition
label, let's handle this sanely, and treat NULL and "" for the current
label as the same, but for the new label as distinct: there NULL means
nothing is set, and "" means an actual empty label.

(cherry picked from commit be9ce0188ebb414319f0c003f805ea02b5eb473e)

4 years agorepart: handle DISCARD failing with EBUSY gracefully
Lennart Poettering [Fri, 19 Mar 2021 21:25:09 +0000 (22:25 +0100)]
repart: handle DISCARD failing with EBUSY gracefully

(cherry picked from commit 22163eb51b682afe969f9381d56315dade874ec1)

4 years agorepart: fix incorrect error code propagation
Lennart Poettering [Mon, 19 Apr 2021 15:35:54 +0000 (17:35 +0200)]
repart: fix incorrect error code propagation

(cherry picked from commit a0ff9971802b664aaa12481c46cec11eae77ea51)

4 years agoshell-completion: use base.lst, not xorg.lst
Peter Hutterer [Tue, 20 Apr 2021 07:09:48 +0000 (17:09 +1000)]
shell-completion: use base.lst, not xorg.lst

Since 2005 xorg.lst has been the legacy symlink to the real file base.lst.

(cherry picked from commit 7a4afd3a15f201a2230dce1f640fc37d18bc39ac)

4 years agosd-login: fix wrong constructor used in sd_login_monitor manpage example
Jason Francis [Mon, 19 Apr 2021 16:16:26 +0000 (12:16 -0400)]
sd-login: fix wrong constructor used in sd_login_monitor manpage example

(cherry picked from commit 941c5275eaaf8d22915eb876045d2173bdbb7d4c)

4 years agosd-login: correct prototype of sd_peer_get_cgroup
Jason Francis [Mon, 19 Apr 2021 16:13:03 +0000 (12:13 -0400)]
sd-login: correct prototype of sd_peer_get_cgroup

(cherry picked from commit a8310e39e996b9b5f63d897879aecf8988261bdb)

4 years agofileio: use take_fdopen_unlocked()
Yu Watanabe [Fri, 16 Apr 2021 01:08:36 +0000 (10:08 +0900)]
fileio: use take_fdopen_unlocked()

This fixes maybe-uninitialized warning:
```
../src/basic/fileio.c: In function ‘chase_symlinks_and_fopen_unlocked’:
../src/basic/fileio.c:1026:19: warning: ‘f’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 1026 |         *ret_file = f;
      |         ~~~~~~~~~~^~~

```

(cherry picked from commit 6604fb0207ee10e8dc05d67f6fe45de0b193b5c4)

4 years agoman: correct requirements for systemd-oomd.service
Anita Zhang [Fri, 16 Apr 2021 07:42:44 +0000 (00:42 -0700)]
man: correct requirements for systemd-oomd.service

Fixes: #19331
(cherry picked from commit 169be51f94b7017fea1394dcb412d3afdfd7cea5)

4 years agojournald: fix %m usage
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 20:06:02 +0000 (22:06 +0200)]
journald: fix %m usage

(cherry picked from commit cf5a2ee82517429a34d9f5bef853cabe055e3e59)

4 years agoshared/module-util: fix errno value passed to log function
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 15:10:36 +0000 (17:10 +0200)]
shared/module-util: fix errno value passed to log function

If r == 0, no harm done. But if r > 0, this would be interpreted as an
errno value, wrongly.

(cherry picked from commit a2eb2267e44580446ecad37e7206e729cfd78155)

4 years agopartition, random-seed, logind: fix log messages with %m
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 10:14:01 +0000 (06:14 -0400)]
partition, random-seed, logind: fix log messages with %m

We would print "...: Success", which is not too terrible, but not pretty
either.

(cherry picked from commit 111a3aae71fa019710216cc5b7aa95b7c8db0937)

4 years agosd-device: improve log message and tweak style
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 09:54:17 +0000 (05:54 -0400)]
sd-device: improve log message and tweak style

We shouldn't say the attribute is missing right after ruling out ENOENT.

(cherry picked from commit aca591ac55e5ee364905aec975388c5e30d0476c)

4 years agocore: drop pointless assert()
Lennart Poettering [Wed, 14 Apr 2021 14:02:35 +0000 (16:02 +0200)]
core: drop pointless assert()

We checked this literally two lines earlier, no point in checking so
quickly again.

(cherry picked from commit 5c9f1c68f032287da3fa7f5c4c08dfb0bf340c0b)

4 years agotest: use systemd-run --wait in TEST-44-LOG-NAMESPACE
Luca Boccassi [Wed, 14 Apr 2021 20:26:50 +0000 (21:26 +0100)]
test: use systemd-run --wait in TEST-44-LOG-NAMESPACE

The test appears to be occasionally failing. It uses systemd-run to echo
'hello world' into a namespaced journal and then uses journalctl to look for it,
but it doesn't wait.
In the failed runs it can't find it, but the automated journal dump shows
the message at the end.

Use --wait to avoid races.

(cherry picked from commit cf9844ffabd7fd51f22e729692b79d55cd7bdd76)

4 years agolibsystemd-network: fix dhcp option buffer confusion
Zbigniew Jędrzejewski-Szmek [Wed, 14 Apr 2021 08:55:09 +0000 (04:55 -0400)]
libsystemd-network: fix dhcp option buffer confusion

We were writing to the wrong buffer with a wrong offset :(
Bug present since the original introduction of the code in
04b28be1a306fd2ba454d3ee333d63df71aa3873.

(cherry picked from commit 828b603a791edd04a5c3603456aa8caca44ce67e)

4 years agomeson.build: typo
Sevan Janiyan [Wed, 14 Apr 2021 23:01:53 +0000 (00:01 +0100)]
meson.build: typo

(cherry picked from commit d5b3e5104448ebfecd334c26dbdd3a8274440b1e)

4 years agotree-wide: avoid uninitialized warning on _cleanup_ variables
Luca Boccassi [Mon, 12 Apr 2021 22:10:21 +0000 (23:10 +0100)]
tree-wide: avoid uninitialized warning on _cleanup_ variables

With some versions of the compiler, the _cleanup_ attr makes it think
the variable might be freed/closed when uninitialized, even though it
cannot happen. The added cost is small enough to be worth the benefit,
and optimized builds will help reduce it even further.

(cherry picked from commit c2b2df604b845b4e1697d0911935e6644323c5a6)

4 years agorfkill: add some casts to silence -Werror=sign-compare
Luca Boccassi [Tue, 13 Apr 2021 12:17:53 +0000 (13:17 +0100)]
rfkill: add some casts to silence -Werror=sign-compare

(cherry picked from commit ab1aa6368a883bce88e3162fee2bea14aacedf23)

Fixes https://github.com/systemd/systemd-stable/issues/101.

4 years agonetwork: add missing default setting in networkd.conf
Yu Watanabe [Sun, 11 Apr 2021 12:25:16 +0000 (21:25 +0900)]
network: add missing default setting in networkd.conf

(cherry picked from commit 6bfadad9bb6eaf614da92eba0a9b6243e8645018)

4 years agoudev: delete useless codes
gaoyi [Tue, 13 Apr 2021 10:59:46 +0000 (18:59 +0800)]
udev: delete useless codes

It seems no one will touch queue.bin

(cherry picked from commit 993eb00016a75cf085eed85cf626a6995e96ab3d)

4 years agoload-fragment: parse specifiers in CPUAffinity= (#19281)
Francois Gervais [Mon, 12 Apr 2021 22:25:29 +0000 (18:25 -0400)]
load-fragment: parse specifiers in CPUAffinity= (#19281)

(cherry picked from commit 54cfe9a75f0e84d0604d39b87b1d919542336809)

4 years agomeson: do not fail if rsync is not installed with meson 0.57.2
Zbigniew Jędrzejewski-Szmek [Mon, 12 Apr 2021 12:03:32 +0000 (14:03 +0200)]
meson: do not fail if rsync is not installed with meson 0.57.2

https://github.com/mesonbuild/meson/issues/8641

Our CI started to fail. Even if the change is reverted in meson,
we need a quick workaround here.

(cherry picked from commit 7c5fd25119a495009ea62f79e5daec34cc464628)

4 years agosd-device: header needs an include because it uses sd_device type
Zbigniew Jędrzejewski-Szmek [Thu, 1 Apr 2021 08:09:11 +0000 (10:09 +0200)]
sd-device: header needs an include because it uses sd_device type

(cherry picked from commit 023e75df4c2904e493c4c8ff62df9fa99709d408)

4 years agoresolved: reply using unicast mDNS when appropriate
Sergey Bugaev [Mon, 15 Feb 2021 17:18:34 +0000 (20:18 +0300)]
resolved: reply using unicast mDNS when appropriate

Fixes https://github.com/systemd/systemd/issues/18434

(cherry picked from commit 84b0ff0e327a4cf873791c74efc312c81400be70)

4 years agoresolved: fix mistaking QU bit for cache-flush bit
Sergey Bugaev [Fri, 19 Feb 2021 13:50:23 +0000 (16:50 +0300)]
resolved: fix mistaking QU bit for cache-flush bit

RFC 6762 defines the top bit in RRs to mean cache flush (section 10.2),
and the top bit in questions to mean that a unicast reply is wanted
(section 5.4).

dns_packet_read_key() is used for parsing both questions and RRs.
When called from dns_packet_extract_question(), the top bit being set
should not result in the packet being rejected as invalid.

Fixes https://github.com/systemd/systemd/issues/17973

(cherry picked from commit 82d39576462ba66a4316307ce1ded97272e1245f)

4 years agoresolved: add flags to DnsQuestion items
Sergey Bugaev [Sat, 20 Feb 2021 14:32:24 +0000 (17:32 +0300)]
resolved: add flags to DnsQuestion items

This adds DnsQuestionItem, which is to DnsQuestion what DnsAnswerItem is to
DnsAnswer.

No functional change.

(cherry picked from commit ab715ddbaf9f45f352c4c018a648454df60b468b)

4 years agobpf-firewall: attach with BPF_F_ALLOW_MULTI if kernel supports
Julia Kartseva [Thu, 4 Feb 2021 06:15:27 +0000 (22:15 -0800)]
bpf-firewall: attach with BPF_F_ALLOW_MULTI if kernel supports

Reduced version of [0].
Use BPF_F_ALLOW_MULTI attach flag for bpf-firewall if kernel supports
it.

Aside from addressing security issue in [0] attaching with 'multi'
allows further attaching of cgroup egress, ingress hooks specified by
BPFProgram=.

[0] https://github.com/systemd/systemd/pull/17495/commits/4e42210d40f96e185a55d43041dd6b962ea830dd

(cherry picked from commit a442ccb4ebdbc3a9ff9d4504eb9724092149fd42)

4 years agoman: fix discriptions for --exec-delay
gaoyi [Mon, 12 Apr 2021 08:09:47 +0000 (16:09 +0800)]
man: fix discriptions for --exec-delay

There are two ambiguity in the original description:
1. It will delay all RUN instructions, include builtin.
2. It will delay before running RUN, not each of RUN{program} instructions.

(cherry picked from commit 45f5efdea7e5e94bd47fc24b9bd404c77b5771a0)

4 years agotest-repart: use cryptsetup and losetup autoclose
Luca Boccassi [Fri, 9 Apr 2021 09:56:13 +0000 (10:56 +0100)]
test-repart: use cryptsetup and losetup autoclose

The test occasionally fails as the umount is not yet completed when
cryptsetup close is invoked.
Both cryptsetup and losetup have supported deferred cleanup for some
time now, so use it instead to avoid races.

++ losetup -P --show --find /tmp/test-repart.dMOfYQ8UUF/zzz
+ LOOP=/dev/loop6
+ VOLUME=test-repart-11882
+ touch /tmp/test-repart.dMOfYQ8UUF/empty-password
+ cryptsetup open --type=luks2 --key-file=/tmp/test-repart.dMOfYQ8UUF/empty*** test-repart-11882
+ mkdir /tmp/test-repart.dMOfYQ8UUF/mount
+ mount -t ext4 /dev/mapper/test-repart-11882 /tmp/test-repart.dMOfYQ8UUF/mount
+ diff -r /tmp/test-repart.dMOfYQ8UUF/mount/def /tmp/test-repart.dMOfYQ8UUF/definitions
+ umount /tmp/test-repart.dMOfYQ8UUF/mount
+ cryptsetup close test-repart-11882
Device test-repart-11882 is still in use.
+ rm -rf /tmp/test-repart.dMOfYQ8UUF

(cherry picked from commit 0efcbecd8b266526bf4a8fd06b9b7e7c5c43566d)

4 years agoTEST-22-TMPFILES: add reproducer for bug with X
Zbigniew Jędrzejewski-Szmek [Wed, 7 Apr 2021 20:35:19 +0000 (22:35 +0200)]
TEST-22-TMPFILES: add reproducer for bug with X

(cherry picked from commit 1672be86021b5ae8e80d095409a4fffcba7cbb75)

4 years agoman: fix quickhelp listing in tmpfiles.d(5)
Zbigniew Jędrzejewski-Szmek [Wed, 7 Apr 2021 16:26:15 +0000 (18:26 +0200)]
man: fix quickhelp listing in tmpfiles.d(5)

Unlike many other small/big letter combos, this one has the recursive
version attached to the lowercase letter.

(cherry picked from commit 3dd61ee5be0291380d341571e138713d2f89125a)

4 years agotmpfiles: use a entry in hashmap as ItemArray in read_config_file()
Masahiro Matsuya [Wed, 31 Mar 2021 02:44:24 +0000 (11:44 +0900)]
tmpfiles: use a entry in hashmap as ItemArray in read_config_file()

[zjs: squash commits and use size_t as appropriate.

Bug seems to have been introduced in 811a15877825da9e53f9a2a8603da34589af6bbb.
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1944468.]

(cherry picked from commit bec890e3cd6dac249cb12ce9430fdb78b6cf546b)

4 years agomkosi.arch: add rsync build dependency
Luca Boccassi [Sat, 10 Apr 2021 19:13:02 +0000 (20:13 +0100)]
mkosi.arch: add rsync build dependency

Program rsync found: NO

man/meson.build:187:0: ERROR: Program 'rsync' not found

(cherry picked from commit a7b7cab66df8c0a701bc6da3a309fa80c90a880b)

4 years agoExtend characters set for PKCS11 URI
Oleg Popov [Sat, 10 Apr 2021 14:21:25 +0000 (17:21 +0300)]
Extend characters set for PKCS11 URI

There are tokens with dots (and other symbols) in PKCS11 URI:

pkcs11:model=Rutoken%20ECP;manufacturer=Aktiv%20Co.;serial=3xxxxxxb;token=livelace
pkcs11:model=PRO;manufacturer=Aladdin%20R.D.;serial=CC62FB25;token=val%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00;id=%33%32%31%30%33%61%36%37%36%65%32%34%35%62%32%31;type=private
(cherry picked from commit b204bdd4ccae2c76422e7383bd51b664d7e2cfd3)

4 years agoresolved: add RFC 8375 "home.arpa" to list of default NTA
Lennart Poettering [Sat, 10 Apr 2021 12:58:54 +0000 (14:58 +0200)]
resolved: add RFC 8375 "home.arpa" to list of default NTA

RFC 8375 introduced "home.arpa" as special TLD for home networks. Let's
hence add it to our default list of NTAs.

(cherry picked from commit 1065501406d6ca608444c3bd19db546e82009450)

4 years agoopenssl: make RSA struct const
Lennart Poettering [Sat, 10 Apr 2021 12:59:40 +0000 (14:59 +0200)]
openssl: make RSA struct const

OpenSSL 3.0 broke API there, but it doesn't hurt to add the "const",
hence add it.

Fixes: #19267
(cherry picked from commit a8fd92b5a303ddd47af44286525e8e4a0fe6e9ae)

4 years agonetwork: adjust log message
Yu Watanabe [Sat, 10 Apr 2021 04:28:11 +0000 (13:28 +0900)]
network: adjust log message

(cherry picked from commit 942cf4b8d1e24ee56bd50f198f4bba2878c307df)

4 years agonetwork: drop unnecessary bitfield specifier
Yu Watanabe [Fri, 9 Apr 2021 10:53:40 +0000 (19:53 +0900)]
network: drop unnecessary bitfield specifier

Manager is allocated only once. It is not necessary to optimize its
size.

(cherry picked from commit a78f938aaf14f285206cb648d6c6d80277ae3568)

4 years agounits: install dbus-org.freedesktop.oom1.service alias
Anita Zhang [Sat, 10 Apr 2021 07:50:50 +0000 (00:50 -0700)]
units: install dbus-org.freedesktop.oom1.service alias

Fixes: #18469
(cherry picked from commit b5a80aa9d89cd82e53181cfd3288bba694622786)

4 years agosd-device: fix error code returned by sd_device_get_sysattr_value() for non-existing...
Lennart Poettering [Fri, 9 Apr 2021 13:00:16 +0000 (15:00 +0200)]
sd-device: fix error code returned by sd_device_get_sysattr_value() for non-existing attributes

lstat() returns the error in errno, not as return value. Let's propagate
this correctly.

This broke the bolt test suite, as @gicmo discovered.

Follow-up for acfc2a1d15560084e077ffb3be472cd117e9020a.

(cherry picked from commit e2e40e9a9e4074eaca7984b70a5d1cd7a7f0cbe0)

4 years agogpt-auto-generator: don't generate systemd-cryptsetup@.service when --Dlibcryptsetup...
gaoyi [Tue, 6 Apr 2021 02:44:33 +0000 (10:44 +0800)]
gpt-auto-generator: don't generate systemd-cryptsetup@.service when --Dlibcryptsetup=false

(cherry picked from commit 5b1375035b617bbee8b22a997be527d1b7a392f8)

4 years agoman: document system-systemd\x2dcryptsetup.slice
Zbigniew Jędrzejewski-Szmek [Fri, 9 Apr 2021 07:27:42 +0000 (09:27 +0200)]
man: document system-systemd\x2dcryptsetup.slice

As discussed in
https://github.com/systemd/systemd/pull/14235/commits/1dc85eff1d0dff18aaeaae530c91bf53f34b726e#r606821495,
follow-up for commit 1dc85eff1d0dff18aaeaae530c91bf53f34b726e.

(cherry picked from commit 5c91fdf3f832a45db35b207da650c4aa12fafa75)

4 years agonetwork: do not require DHCPv6 addresses when UseAddress=no
Yu Watanabe [Wed, 7 Apr 2021 17:29:52 +0000 (02:29 +0900)]
network: do not require DHCPv6 addresses when UseAddress=no

Follow-up for 1536b7b2d00819615bf8eba194de7ccd20c3689f.

Fixes #19196.

(cherry picked from commit 8cd37e4354a5993c8bc600f481c4c0cc6c61eb91)

4 years agohomectl,TEST-46: fix test and fix homectl return value, update docs
Zbigniew Jędrzejewski-Szmek [Thu, 8 Apr 2021 08:34:28 +0000 (10:34 +0200)]
homectl,TEST-46: fix test and fix homectl return value, update docs

The usual: the test wasn't testing, so we didn't notice that the
command wasn't returning as expected.

(cherry picked from commit b9bfa250f2c04caeecd49e54cdbadee3986d64b3)

4 years agotmpfiles: make handling of existing-but-different targets more consistent
Zbigniew Jędrzejewski-Szmek [Wed, 7 Apr 2021 22:48:35 +0000 (00:48 +0200)]
tmpfiles: make handling of existing-but-different targets more consistent

create_fifo() was added in a2fc2f8dd30c17ad1e23a31fc6ff2aeba4c6fa27, and
would always ignore failure. The test was trying to fail in this case, but
we actually don't fail, which seems to be correct. We didn't notice before
because the test was ineffective.

To make things consistent, generally log at warning level, but don't propagate
the error. For symlinks, log at debug level, as before.

For 'e', failure is not propagated now. The test is adjusted to match.

I think warning is appropriate in most cases: we do not expect a device node to
be replaced by a different device node or even a non-device file. This would
most likely be an error somewhere. An exception is made for symlinks, which are
mismatched on purpose, for example /etc/resolv.conf. With this patch, we don't
get any warnings with the any of the 74 tmpfiles.d files, which suggests that
increasing the warning levels will not cause too many unexpected warnings. If
it turns out that there are valid cases where people have expected mismatches
for non-symlink types, we can always decrease the log levels again.

(cherry picked from commit b88ba6c76116b6e03e202b1bdffd37933f748f03)

4 years agotests: allow for os-release quote variability in TEST-50-DISSECT
Luca Boccassi [Thu, 8 Apr 2021 10:30:33 +0000 (11:30 +0100)]
tests: allow for os-release quote variability in TEST-50-DISSECT

Quoting of values differs between distros: Fedora doesn't quote the ID_
fields, but CentOS does.
Adjust the test checks to account for this.

Fixes #19242

(cherry picked from commit 9f519e491fb2dddeaf39237587191c25b3797a7d)

4 years agocore: fix memleak of ipc_namespace_path
Zbigniew Jędrzejewski-Szmek [Wed, 7 Apr 2021 14:18:53 +0000 (16:18 +0200)]
core: fix memleak of ipc_namespace_path

Fixup for a70581ffb5c13c91c76ff73ba6f5f3ff59c5a915.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32991

(cherry picked from commit 71d1e58309bb70bb2a014f33c5f9503dcbed020c)

4 years agoproc-cmdline: allow backslash escapes when parsing /proc/cmdline
Lennart Poettering [Tue, 6 Apr 2021 09:45:47 +0000 (11:45 +0200)]
proc-cmdline: allow backslash escapes when parsing /proc/cmdline

So far when parsing /proc/cmdline we'd consider backslashes as
mechanisms for escaping whitepace or quotes. This changes things so that
they are retained as they are instead. The kernel itself doesn't allow such
escaping, and hence we shouldn't do so either (see lib/cmdline.c in the
kernel sources; it does support "" quotes btw).

This fix is useful to allow specifying backslash escapes in the "root="
cmdline option to be passed through to systemd-fstab-generator. Example:

    root=/dev/disk/by-partlabel/Root\x20Partition

Previously we'd eat up the "\" so that we'd then look for a device
/dev/disk/by-partlabel/Rootx20Partition which never shows up.

(cherry picked from commit d997861ea7dae633174cd80ab55552c020526b62)

4 years agoman/systemd-cryptenroll: Fix sd-boot manvolnum from 8 to 7
Morten Linderud [Wed, 7 Apr 2021 10:10:10 +0000 (12:10 +0200)]
man/systemd-cryptenroll: Fix sd-boot manvolnum from 8 to 7

Off-by-one error in the documentation index. The volume number for
systemd-boot/sd-boot is 7.

Signed-off-by: Morten Linderud <morten@linderud.pw>
(cherry picked from commit 29d898cc7be4b2e91f13bba83fef46bbe995f08e)

4 years agoBump test-random-util timeout
Luca Boccassi [Tue, 6 Apr 2021 19:24:17 +0000 (20:24 +0100)]
Bump test-random-util timeout

It is using log_trace, which we enabled in the CI, so now it's
slower and it is timing out. Bump the timeout from 30s to 120s.

(cherry picked from commit 65d09d575cf74c34098ff4f3ab53fc7587805811)

4 years agotpm2-util: properly load tpm2 libraries befre unsealing
Lennart Poettering [Tue, 6 Apr 2021 09:46:19 +0000 (11:46 +0200)]
tpm2-util: properly load tpm2 libraries befre unsealing

We forgot a call to dlopen_tpm2() in the unseal codepaths. As long as
automatic TPM2 device discovery was used that didn't matter, since in
that codepaths we'd have another call dlopen_tpm2(). But with an
explicitly configured TPM2 device things should work too, hence add the
missing call.

Fixes: #19206
(cherry picked from commit 1b30720c1b22df75e147cc201f240db23881672d)

4 years agoresolve: copy rd flag from the query to response
KoyamaSohei [Sat, 3 Apr 2021 16:13:37 +0000 (01:13 +0900)]
resolve: copy rd flag from the query to response

(cherry picked from commit da846b30312863cc30b32c1d43988a44673c5b8f)

4 years agobash-completion: localize words and cword variables
Sibo Dong [Sat, 3 Apr 2021 03:33:59 +0000 (23:33 -0400)]
bash-completion: localize words and cword variables

The words and cword variables are not localized in all Bash completion
scripts that call _init_completion.

cur, prev, words, and cword (and split if using the -s flag) are all
variables that should be localized in Bash completion scripts before
calling _init_completion (even if they don't otherwise appear in the
calling script). This is done for cur and prev, but not for words and
cword. Letting words and cword remain unlocalized may clobber variables
the user is using for other purposes, which is bad.

This issue can be resolved by declaring words and cword as local
variables.

Resolves #19188.

(cherry picked from commit f34173a048061b3f7e551e9a7c04f00e5a106fac)

4 years agoqrcode-util: set case-sensitive for generating QR codes
Gibeom Gwon [Mon, 5 Apr 2021 14:11:23 +0000 (23:11 +0900)]
qrcode-util: set case-sensitive for generating QR codes

Until now, string treated case-insensitive, always converted to
uppercase. This can cause confusion such as user enter uppercased
recovery key.

(cherry picked from commit fd11201b93c1f3c32831873b746236202f500e91)

4 years agotest-firewall-util: skip if iptables nat table does not exist
Anita Zhang [Fri, 2 Apr 2021 09:49:37 +0000 (02:49 -0700)]
test-firewall-util: skip if iptables nat table does not exist

(cherry picked from commit afbcd905526111e3a1bd55b0d6d5ee4413734735)

4 years agofuzzer: add a test case for #19178
Frantisek Sumsal [Fri, 2 Apr 2021 16:07:26 +0000 (18:07 +0200)]
fuzzer: add a test case for #19178

(cherry picked from commit 080a602771ef51230a51f247b8b728d0483e2f28)

4 years agotest-oomd-util: fix running in mkosi
Anita Zhang [Fri, 2 Apr 2021 02:06:26 +0000 (19:06 -0700)]
test-oomd-util: fix running in mkosi

When this test is run in mkosi, the previously tested cgroup that we write
xattrs into and the root cgroup are the same.

Since the root cgroup is a live cgroup anyways (vs. the test cgroups which are
remade each time) let's generate the expected preference values from reading
the xattrs instead of assuming it will be NONE.

(cherry picked from commit 080ca0d830d69dea5fb2b07aace54a4402bf7294)

4 years agomeson: link with libm for math functions
Anita Zhang [Fri, 2 Apr 2021 01:44:26 +0000 (18:44 -0700)]
meson: link with libm for math functions

Fixes this error I got building on F33:
  /usr/bin/ld: test-random-util.p/src_test_test-random-util.c.o: undefined
  reference to symbol 'sqrt@@GLIBC_2.2.5'
  /usr/bin/ld: /usr/lib64/libm.so.6: error adding symbols: DSO missing
  from command line

(cherry picked from commit ea460d79644560bcb1ed2adb4cf30413f285492a)

4 years agodocs: use current spelling "macOS" not "OS X" etc.
Carlo Teubner [Fri, 2 Apr 2021 08:03:02 +0000 (09:03 +0100)]
docs: use current spelling "macOS" not "OS X" etc.

(cherry picked from commit 6d3831cee58dcbdb7ea8a86ca621fec38f5b279b)

4 years agosystemd-notify: Fix return value of --booted
Joerg Behrmann [Tue, 30 Mar 2021 14:29:59 +0000 (16:29 +0200)]
systemd-notify: Fix return value of --booted

(cherry picked from commit 8ab34a49dbf75fd731973359a6f24c212682f479)

4 years agoresolved: avoid passing unitialized variable
Zbigniew Jędrzejewski-Szmek [Thu, 1 Apr 2021 09:12:57 +0000 (11:12 +0200)]
resolved: avoid passing unitialized variable

The issue was introduced in the refactoring in 775ae35403f8f3c01b7ac13387fe8aac1759993f.
We would pass an initialized value to a helper function. We would only *use*
it if it was initialized. But the mere passing of an unitialized variable is
UB, so let's not do that. This silences a gcc warning.

(cherry picked from commit e7d48709ed6c8569286463552f3df36bbdce8824)

4 years agotest-device-util: let's verify that we return proper error from log_device_*
Zbigniew Jędrzejewski-Szmek [Thu, 1 Apr 2021 08:11:30 +0000 (10:11 +0200)]
test-device-util: let's verify that we return proper error from log_device_*

(cherry picked from commit 0246f42980ed87dfca79fd4a8ec67a81d824e427)