Andreas Rammhold [Mon, 26 Jul 2021 15:20:34 +0000 (17:20 +0200)]
login: respect install_sysconfdir_samples in meson file
The refactoring done in
c900d89faa0 caused the configuration files to be
installed into the pkgsysconfdir regardless of the state of the
install_sysconfdir_samples boolean that indicates whether or not the
sample files should be installed.
(cherry picked from commit
72964d047a7a8f79ae12ab41168feb0080eef6c3)
Andreas Rammhold [Mon, 26 Jul 2021 14:57:43 +0000 (16:57 +0200)]
core: respect install_sysconfdir_samples in meson file
The refactoring done in
e11a25cadbe caused the configuration files to be
installed into the pkgsysconfdir regardless of the state of the
install_sysconfdir_samples boolean that indicates whether or not the
sample files should be installed.
(cherry picked from commit
cfd760b6a77808d0b9451ed618a23b6259fe525f)
pedro martelletto [Wed, 8 Sep 2021 08:42:56 +0000 (10:42 +0200)]
explicitly close FIDO2 devices
FIDO2 device access is serialised by libfido2 using flock().
Therefore, make sure to close a FIDO2 device once we are done
with it, or we risk opening it again at a later point and
deadlocking. Fixes #20664.
(cherry picked from commit
b6aa89b0a399992c8ea762e6ec4f30cff90618f2)
Zbigniew Jędrzejewski-Szmek [Wed, 15 Sep 2021 14:33:05 +0000 (16:33 +0200)]
Drop bundled copy of linux/if_arp.h
As far as I can see, we use this to get a list of ARPHRD_* defines (used in
particular for Type= in .link files). If we drop our copy, and build against
old kernel headers, the user will have a shorter list of types available. This
seems OK, and I don't think it's worth carrying our own version of this file
just to have newest possible entries.
7c5b9952c4f6e2b72f90edbe439982528b7cf223 recently updated this file, but we'd
have to update it every time the kernel adds new entries. But if we look at
the failure carefully:
src/basic/arphrd-from-name.gperf:65:16: error: ‘ARPHRD_MCTP’ undeclared (first use in this function); did you mean ‘ARPHRD_FCPP’?
65 | MCTP, ARPHRD_MCTP
| ^~
| ARPHRD_FCPP
we see that the list we were generating was from the system headers, so it was
only as good as the system headers anyway, without the newer entries in our
bundled copy, if there were any. So let's make things simpler by always using
system headers.
And if somebody wants to fix things so that we always have the newest list,
then we should just generate and store the converted list, not the full header.
(cherry picked from commit
e7f46ee3ae1cc66a94b293957721d68dc09d7449)
Chris Packham [Thu, 9 Sep 2021 21:51:36 +0000 (09:51 +1200)]
basic/linux: Sync if_arp.h with Linux 5.14
ARPHRD_MCTP was added in 5.14. Sync if_arp.h to pick up the definition
Fixes #20694
(cherry picked from commit
7c5b9952c4f6e2b72f90edbe439982528b7cf223)
Anatol Pomozov [Fri, 10 Sep 2021 18:52:55 +0000 (11:52 -0700)]
tpm-util: fix TPM parameter handling
cryptenroll allows to specify a custom TPM driver separated from
parameters with colon e.g. `systemd-cryptenroll --tpm2-device=swtpm:`
tells to load swtpm tss driver and use it as a device.
Unfortunately it does not work, swtpm driver init() fails with
```
debug:tcti:src/tss2-tcti/tcti-swtpm.c:570:Tss2_Tcti_Swtpm_Init() Dup'd conf string to: 0x562f91cbc000
debug:tcti:src/util/key-value-parse.c:85:parse_key_value_string() parsing key/value: swtpm:
WARNING:tcti:src/util/key-value-parse.c:50:parse_key_value() key / value string is invalid
Failed to initialize TCTI context: tcti:A parameter has a bad value
```
It turns out that cryptenroll suppose to use the driver name internally
and strip it before passing the rest of parameters to init() function.
Without doing it swtpm receives incorrect key-value property and gets
confused.
Fix it by passing the correct parameter (without driver name) to the
init() function.
Fixes #20708
(cherry picked from commit
8889564a8da574e4b956e2b6ced34354dee54cd7)
Yu Watanabe [Wed, 15 Sep 2021 14:29:11 +0000 (23:29 +0900)]
journal,network,timesync: fix segfault on 32bit timeval/timespec systems
Fixes #20741.
(cherry picked from commit
f782eee68aea996c68b8cfeba5f288dae7fc876f)
Yu Watanabe [Sun, 29 Aug 2021 11:55:44 +0000 (20:55 +0900)]
timesync: check cmsg length
(cherry picked from commit
37df6d9b8d3a8b34bec5346766ab8093c0f0fc26)
Yu Watanabe [Sun, 29 Aug 2021 11:50:49 +0000 (20:50 +0900)]
socket-util: introduce CMSG_SPACE_TIMEVAL/TIMESPEC macro to support additional 64bit timeval or timespec
Fixes #20482 and #20564.
(cherry picked from commit
9365e296fe281da45797af89a97627e872fc019d)
Yu Watanabe [Thu, 19 Aug 2021 23:44:27 +0000 (08:44 +0900)]
Yu Watanabe [Tue, 7 Sep 2021 12:46:50 +0000 (21:46 +0900)]
network: fix wrong flag: manage_foreign_routes -> manage_foreign_rules
Fixes a bug in
d94dfe7053d49fa62c4bfc07b7f3fc2227c10aff.
(cherry picked from commit
771a36439e955906290afc16a6fb3b10401892cf)
Lennart Poettering [Thu, 19 Aug 2021 16:12:56 +0000 (18:12 +0200)]
import: turn off weird protocols in curl
Let's lock things down a bit and now allow curl's weirder protocols to
be used with our use. i.e. stick to http:// + https:// + file:// and
turn everything else off. (Gopher!)
This is cde that interfaces with the network after all, and we better
shouldn't support protocols needlessly that are much less tested.
(Given that HTTP redirects (and other redirects) exist, this should give
us a security benefit, since we will then be sure that noone can forward
us to a weird protocol, which we never tested, and other people test
neither)
(cherry picked from commit
55b90ee00b78a449c8f187a5e8141f8ccb100bf4)
Daan De Meyer [Thu, 19 Aug 2021 12:37:41 +0000 (13:37 +0100)]
link: Stop prefixing features with "the"
(cherry picked from commit
f20710c74c08bf69472f62c886e5bdd5e38c87a5)
Yu Watanabe [Thu, 19 Aug 2021 23:40:11 +0000 (08:40 +0900)]
timesync: fix wrong type for receiving timestamp in nanoseconds
Fixes #20482.
(cherry picked from commit
6f96bdc58746b1698bf8b3430a6c638f8949daec)
Alfonso Sánchez-Beato [Thu, 19 Aug 2021 10:21:12 +0000 (12:21 +0200)]
src/boot/efi/linux: fix linux_exec prototype
Callers to linux_exec() are actually passing an EFI_HANDLE, not a pointer to
it. linux_efi_handover(), which is called by linux_exec(), also expects an
EFI_HANDLE.
(cherry picked from commit
d48f9174cf211a235193963a06b3d28537fc6529)
Lennart Poettering [Wed, 18 Aug 2021 20:41:08 +0000 (22:41 +0200)]
discover-image: pass the right fd to fd_getcrtime()
(cherry picked from commit
12a7f04a2b9135a4751dba71e2f688525d7c93e7)
Vladimir Panteleev [Tue, 17 Aug 2021 18:30:29 +0000 (18:30 +0000)]
fstab-generator: Respect nofail when ordering
(cherry picked from commit
e9aee932409754c9f709a8ea3ad13caf39fce7d2)
Vladimir Panteleev [Tue, 17 Aug 2021 17:56:41 +0000 (17:56 +0000)]
Fix typo in dbus property name ("OnSuccesJobMode")
(cherry picked from commit
ecfcf0244ae6a5f89411761ac4a86e0e9e10e31b)
Yu Watanabe [Tue, 17 Aug 2021 14:13:07 +0000 (23:13 +0900)]
shell-completion: add missing uevent actions for udevadm
(cherry picked from commit
74614801f6bd33dfb2c051fa6b6d7c899c695cf6)
Yu Watanabe [Tue, 17 Aug 2021 05:03:19 +0000 (14:03 +0900)]
network: do not assume the highest priority when Priority= is unspecified
Previously, when Priority= is unspecified, networkd configured the rule with
the highest (=0) priority. This commit makes networkd distinguish the case
the setting is unspecified and one explicitly specified as Priority=0.
Note.
1) If the priority is unspecified on configure, then kernel dynamically picks
a priority for the rule.
2) The new behavior is consistent with 'ip rule' command.
Replaces #15606.
(cherry picked from commit
c4f7a347566b8926382029593b4d9957fef2564c)
Geass-LL [Fri, 2 Apr 2021 03:27:59 +0000 (11:27 +0800)]
unit: coldplug both job and nop_job if possible
Sometimes, both job and nop_job are deserialized. In this case,
if we only cold plug the job, the nop_job will also stuck in the
job list.
(cherry picked from commit
7dbd330c7ef28852db0fb044503ed6f072477d50)
Tom Yan [Mon, 16 Aug 2021 10:00:42 +0000 (18:00 +0800)]
network: allow users to forbid passthru MACVLAN from putting its link into promiscuous mode
While we haven't implemented a key for users to set MACVLAN/MACVTAP flags,
we can at least allow them to make use of the Promiscuous= key of
the corresponding link to set the nopromisc flag.
(cherry picked from commit
17a6a4ae2e7104a1105a0cef0ba049799f3ef6bc)
Milo Turner [Fri, 13 Aug 2021 14:28:58 +0000 (10:28 -0400)]
Don't open /var journals in volatile mode when runtime_journal==NULL
(cherry picked from commit
d64441b669932ab97fbbfc71cb143045f690039e)
Steven Siloti [Sun, 11 Jul 2021 18:05:26 +0000 (11:05 -0700)]
resolved: retry on SERVFAIL before downgrading feature level
The SERVFAIL RCODE can be generated for many reasons which may not be related
to lack of feature support. For example, the Stubby resolver generates
SERVFAIL when a request times out. Such transient failures can cause
unnecessary downgrades to both the transaction and the server's feature level.
The consequences of this are especially severe if the server is in DNSSEC
strict mode. In this case repeated downgrades eventually cause the server to
stop resolving entirely with the error "incompatible-server".
To avoid unnecessary downgrades the request should be retried once with the
current level before the transaction's feature level is downgraded.
(cherry picked from commit
8a33aa199dc1cea14494469ac9d7d08dc6721df1)
Jan Janssen [Wed, 11 Aug 2021 12:59:46 +0000 (14:59 +0200)]
sd-boot: Fix possible null pointer dereference
Auto entries are showing garbage for the version in print_status()
because StrDuplicate does not expect null pointers.
(cherry picked from commit
b52fafb26d90b77cfc259fcbdab3c95a571bacb1)
Michal Koutný [Wed, 4 Aug 2021 16:59:35 +0000 (18:59 +0200)]
core: Make sure cgroup_oom_queue is flushed on manager exit
The unit queues are not serialized/deserialized (they are recreated
after reexec/reload instead). The destroyed units are not removed from
the cgroup_oom_queue. That means the queue may contain possibly invalid
pointers to released units.
Fix this by removing the units from cgroup_oom_queue as we do for
others. When at it, sync assert checks with currently existing queues
and put them in order in the manager cleanup code.
(cherry picked from commit
13e721036bf4ba15eb255d8f0a14800f969ac0d7)
Dan Streetman [Sun, 11 Jul 2021 20:59:27 +0000 (16:59 -0400)]
cgroup: do 'catchup' for unit cgroup inotify watch files
While reexec/reload, we drop the inotify watch on cgroup file(s), so
we need to re-check them in case they changed and we missed the event.
Fixes: #20198
(cherry picked from commit
869f52f21831b611160c4937bef822ca94c802ba)
Maanya Goenka [Tue, 10 Aug 2021 21:30:46 +0000 (14:30 -0700)]
systemd-analyze: parse ip_filters_custom_egress correctly
Fixed bug in original assignment of security_info variable: ip_filters_custom_egress.
(cherry picked from commit
3da57008e743643d45d3dc05eacac1a4623539a4)
Yu Watanabe [Tue, 10 Aug 2021 15:12:40 +0000 (00:12 +0900)]
hostname: fix off-by-one issue in gethostname()
gethostname() returns null-terminated hostname.
Fixes #20309 and #20417.
(cherry picked from commit
ccdf235464297c2ca4c1dea8733a6bad423084d5)
Yu Watanabe [Wed, 11 Aug 2021 07:20:35 +0000 (16:20 +0900)]
sd-dhcp-server: fix possible double-free or use-after-free
(cherry picked from commit
3dc8fb0eb8dd4b7dd802aa69cfe5b2c8f760f561)
MertsA [Wed, 11 Aug 2021 03:54:50 +0000 (20:54 -0700)]
Get rid of dangling setutxent()
utmp_wall() and utmp_put_dead_process() called setutxent() directly instead of the stub in utmp-wtmp.h and never called endutxent(). This would leave /run/utmp left open by PID 1 or journald. This can be reproduced by e.g. lsof /run/utmp and systemd-cat -p 0 echo test. For utmp_put_dead_process() it would only leave it open if it returned early before calling write_utmp_wtmp()
(cherry picked from commit
bbd239f67a683fe63ee3698896fa503ff25031ed)
Yu Watanabe [Tue, 10 Aug 2021 12:39:27 +0000 (21:39 +0900)]
sd-dhcp6-client: cirtainly adjust T1 and T2
This fixes a bug introduced by
99f1d3fc5043b33dea5faa88f7015a487965333f.
Note that in the information requesting mode, the lease has neither
addresses nor PD prefixes.
(cherry picked from commit
de949e911ee15d1c9daaf5ba5a3cff806fb2b514)
Yu Watanabe [Tue, 10 Aug 2021 12:36:04 +0000 (21:36 +0900)]
sd-dhcp6-client: fix copy-and-paste mistake
Fix bug introduced by
b47fb949b338a8e77be789542fffb8c86da79284.
(cherry picked from commit
0c42b613485978eb82d7aff7ed426b8a8bb327af)
Jack Dähn [Tue, 3 Aug 2021 06:07:05 +0000 (08:07 +0200)]
resolved: Don't omit AD bit in reply if DO is set in the query
Set the AD bit in the response if the data is authenticated and AD or DO is set in the query, as suggested by section 5.8 of RFC6840.
Fixes #20332
(cherry picked from commit
b553abd8aed0f6fbff9973882fb08c3aec1d9400)
Frantisek Sumsal [Mon, 9 Aug 2021 12:32:43 +0000 (14:32 +0200)]
test: use a correct kernel binary on ppc64le machines
Ubuntu calls the kernel binary as `vmlinux-*`, but RHEL/CentOS uses
the "standard" `vmlinuz-` prefix.
Follow-up to
eaa602cb14217f2623c9c8c44b6f3012dc4d0b24.
(cherry picked from commit
46db176f8c34adc47f535904e834d18c8ad53f5f)
longpanda [Thu, 5 Aug 2021 01:31:44 +0000 (09:31 +0800)]
Fix the "Failed to open random seed ..." message.
When boot ArchLinux from Ventoy, it always print `Failed to open random seed file: write protected.`
As Ventoy emulate the ISO file as a read-only CDROM, I didn't test with a real physical CDROM drive, but maybe it also has such problem.
As we use `EFI_FILE_MODE_WRITE` to open the `loader\random-seed` file, so I think it's better to check the result with both `EFI_WRITE_PROTECTED` and `EFI_NOT_FOUND`.
(cherry picked from commit
2846007ecfb1fc84005b942167d394294c707d7b)
Luca Boccassi [Sun, 22 Aug 2021 17:23:36 +0000 (18:23 +0100)]
Merge pull request #114 from yuwata/v249-stable-network-fix-gateway
[v249] network: fix logic for checking gateway address
Yu Watanabe [Fri, 20 Aug 2021 18:54:35 +0000 (03:54 +0900)]
test-network: add testcases that gateway address is IPv6 link local
(cherry picked from commit
180c5116b3ce09c2bac4f40bc976dc0a7023fee0)
Yu Watanabe [Fri, 20 Aug 2021 18:51:39 +0000 (03:51 +0900)]
network: fix logic for checking gateway address is ready
This fixes the followings:
- The corresponding route or address to the gateway address must be in
the same link.
- IPv6 link local address is not necessary to be reachable.
Fixes an issue reported in https://github.com/systemd/systemd/issues/8686#issuecomment-
902562324.
(cherry picked from commit
3333350a0e1917395d3654731ca985ea668bca9b)
Yu Watanabe [Thu, 12 Aug 2021 04:39:53 +0000 (13:39 +0900)]
network: fix configuring of CAN devices
Fix a bug introduced by
7558f9e717381eef0ddc8ddfb5a754ea4b0f3e6c.
Fixes #20428.
(cherry picked from commit
1e8cce8f1e61e01db844d518b7051b6ce69867fd)
Zbigniew Jędrzejewski-Szmek [Mon, 26 Jul 2021 09:46:12 +0000 (11:46 +0200)]
udev: when setting up lo, do not return an error
From #20300:
> commit
70f32a260b5ebb68c19ecadf5d69b3844896ba55
> Author: Yu Watanabe <watanabe.yu+github@gmail.com>
> Date: Sun May 23 16:59:40 2021 +0900
> udev/net: do not manage loopback interfaces
> There are nothing we can configure in udevd for loopback interfaces;
> no ethertool configs can be applied, MAC address, interface name should
> introduced a regression for 'udevadm test-builtin net_setup_link /sys/class/net/lo/'.
> Prior to this commit this command would exit with 0 whereas after this commit
> it exists with 1. This causes cloud-init on Archlinux to fail as this command
> is run by it and likely also netplan to have networkd rescan and re-apply a
> bunch of things on NICs.
I think it's reasonable to keep returning 0 here: we are intentatinally doing
nothing for the device, and that is not an error, but a (noop) success.
Fixes #20300.
(cherry picked from commit
b4f0261337c91157231452b5a258799391d7ae51)
Yu Watanabe [Fri, 6 Aug 2021 10:37:16 +0000 (19:37 +0900)]
network: use monotonic instead of boot time to handle address creation/update timestamp
Follow-up for
25db3aeaf32ba95bad5e765720ebc23c8ef77a99 and
899034ba8167bd16e802cfbea29a9ee85dee5be5.
Fixes another issue in #20244.
(cherry picked from commit
5865dc1493e5519549d24fef23a2ce5c812eca32)
Yu Watanabe [Mon, 19 Jul 2021 06:18:37 +0000 (15:18 +0900)]
network: configure address with requested lifetime
When assigning the same address provided by a dynamic addressing
protocol, the new lifetime is stored on Request::Address, but not
Address object in Link object, which can be obtained by address_get().
So, we need to configure address with Address object in Request.
Fixes #20245.
(cherry picked from commit
2d302d88e4dfd48b18486c5ce2c7dfeb229a1b0a)
Yu Watanabe [Mon, 12 Jul 2021 12:23:41 +0000 (21:23 +0900)]
network: check the received interface name is actually new
For some reasons I do not know, on interface renaming, kernel once send
netlink message with old interface name, and then send with new name.
If eth0 is renamed, and then new interface appears as eth0, then the
message with the old name 'eth0' makes the interface enters failed
state.
To ignore such invalid(?) rename event messages, let's confirm the
received interface name.
Fixes #20203.
(cherry picked from commit
176b8be10ffce2f8c1fc931a37904a528057016f)
Yu Watanabe [Mon, 12 Jul 2021 07:36:55 +0000 (16:36 +0900)]
test-network: add a testcase for ManageForeignRoutes=no
(cherry picked from commit
1d26d4cd140e939babf83425cdcaef4ca4bc82ce)
Yu Watanabe [Mon, 12 Jul 2021 06:46:44 +0000 (15:46 +0900)]
network: also check addresses when determine a gateway address is reachable or not
Fixes #20201.
(cherry picked from commit
11046cea1414c70b5d7aab37ea88d5a839cbd209)
Yu Watanabe [Wed, 4 Aug 2021 15:10:52 +0000 (00:10 +0900)]
network: ignore errors on unsetting master ifindex
Fixes #20241.
(cherry picked from commit
c347a98272bd1b81682c266b9720fad107b96ab0)
Yu Watanabe [Wed, 4 Aug 2021 04:53:21 +0000 (13:53 +0900)]
network: ignore errors on setting bridge config
For some setups, kernel refuses to set bridge configs with -EOPNOTSUPP.
See kernel's rtnl_bridge_setlink() in net/core/rtnetlink.c.
Fixes #20373.
(cherry picked from commit
1171f3f030319155914c2bb90655f46653f88cbf)
Yu Watanabe [Wed, 4 Aug 2021 04:52:52 +0000 (13:52 +0900)]
network: add comments
(cherry picked from commit
17d808a8bf55471009f5e0e1ccb06b1ffccdfa1a)
Yu Watanabe [Wed, 4 Aug 2021 18:14:41 +0000 (03:14 +0900)]
core: wrap cgroup path with empty_to_root() in log messages
This fixes e.g. the following log message:
---
systemd[1]: -.slice: Failed to migrate controller cgroups from , ignoring: Read-only file system
---
(cherry picked from commit
6178e2f88956e1900f445908ed053865cc22e879)
Yu Watanabe [Wed, 4 Aug 2021 18:13:48 +0000 (03:13 +0900)]
core/cgroup: fix error handling of cg_remove_xattr()
(cherry picked from commit
0cddb53c85588fbfb8043f622895c7bd15819198)
Yu Watanabe [Wed, 4 Aug 2021 09:16:44 +0000 (18:16 +0900)]
sd-netlink: always append new bridge FDB entries
This partially reverts
192a9d95ea3e058afd824d38a9cea16ad0a84a57 (#19432).
Fixes #20305.
(cherry picked from commit
74c1ab841fbad9d4f237c819577fcd1d46a072b6)
Michal Koutný [Thu, 10 Jun 2021 12:39:13 +0000 (14:39 +0200)]
mkosi: Fix openSUSE Jinja2 package name
Dare to be different ¯\_(ツ)_/¯
(cherry picked from commit
ed802c44da7918ba1c14944b711a20b14d9e0fd4)
Michal Koutný [Fri, 12 Feb 2021 17:11:18 +0000 (18:11 +0100)]
mkosi: openSUSE update --bootable=no dependencies
Since we can build --bootable=no images without dracut->systemd, we need
to add systemd runtime dependencies explicitely.
(cherry picked from commit
f2bb8857cd093eb9bd5e1dad6fb996a0a4463556)
Yu Watanabe [Wed, 4 Aug 2021 04:14:03 +0000 (13:14 +0900)]
network: use address_equal()/route_equal() to compare addresses or routes configured by NDisc
Fixes #20244.
(cherry picked from commit
10e417b3eac03c1bcd0b5f3d5c24291ac644e164)
Zbigniew Jędrzejewski-Szmek [Sat, 31 Jul 2021 07:16:52 +0000 (09:16 +0200)]
man: describe veritysetup command syntax
It makes it easier to diagnose what the generated units actually do.
(cherry picked from commit
d53285d551d883bb9f097eca0942e8c585e33470)
Zbigniew Jędrzejewski-Szmek [Sat, 31 Jul 2021 07:00:11 +0000 (09:00 +0200)]
veritysetup: print help for --help/-h/help
In general our commands print help on --help, but here this would trigger
the error that two arguments are needed. Let's make this more user-friendly.
(cherry picked from commit
5d5e43cc33637a12f743f17294cfbd3ede08a1b3)
David Seifert [Mon, 2 Aug 2021 14:09:10 +0000 (16:09 +0200)]
Use correct `<poll.h>` include
* `<sys/poll.h>` is not specified in POSIX
(cherry picked from commit
2b6c0bb2a341c95223ce672249e43c743b03d78c)
David Seifert [Mon, 2 Aug 2021 10:41:38 +0000 (12:41 +0200)]
Use correct `<fcntl.h>` include
* `<sys/fcntl.h>` is not specified in POSIX
(cherry picked from commit
f8d54f7810aeea5ff27a5db03e1aab7ea54c8268)
Frantisek Sumsal [Thu, 29 Jul 2021 16:44:51 +0000 (18:44 +0200)]
test: correctly detect ASan on s390x
s390x uses BRAS(L) instead of CALL(Q), e.g.:
```
1009528: c0 e5 ff ff f8 a0 brasl %r14,
1008668 <__asan_report_load1@plt>
10095f0: c0 e5 ff ff ea ec brasl %r14,
1006bc8 <__asan_stack_malloc_4@plt>
10097f8: c0 e5 ff ff f8 f8 brasl %r14,
10089e8 <__asan_report_load8@plt>
```
x86_64 for reference:
```
4011f3: e8 48 fe ff ff callq 401040 <__asan_report_load1@plt>
401227: e8 24 fe ff ff callq 401050 <__asan_report_load8@plt>
401251: e8 da fd ff ff callq 401030 <__asan_init@plt>
```
(cherry picked from commit
8bf79f05532162d19fe6ee211297cff81b4f9874)
Zbigniew Jędrzejewski-Szmek [Wed, 28 Jul 2021 10:57:10 +0000 (12:57 +0200)]
systemctl: allow set-property to be called with a glob pattern
We call "systemctl set-property … Markers=+needs-restart" and this should
also work for globs, e.g. "user@*.service" or "syncthing@*.service".
https://bugzilla.redhat.com/show_bug.cgi?id=
1986258
(cherry picked from commit
23a0ffa59f9cb26c4b016c9fd1a3a70da2607f61)
Zbigniew Jędrzejewski-Szmek [Tue, 27 Jul 2021 07:42:09 +0000 (09:42 +0200)]
man/systemctl: rework descriptions of bind and mount-image
The text used "unit's view" to mean mount namespace. But we talk about
mount namespaces in the later part of the paragraph anyway, so trying to
use an "approachable term" only makes the whole thing harder to understand.
Let's use the precise term.
Some paragraph-breaking and re-indentation is done too.
(cherry picked from commit
e04eae5e1c43c050e0707d3fcfdc16691b761d61)
Zbigniew Jędrzejewski-Szmek [Tue, 27 Jul 2021 07:39:39 +0000 (09:39 +0200)]
man/tmpfiles.d: rewrite the description of age-by
(cherry picked from commit
dab1fe1a8e4d47784b6bf7b440d4b3ba6e70940d)
Zbigniew Jędrzejewski-Szmek [Tue, 27 Jul 2021 07:39:19 +0000 (09:39 +0200)]
man: use title of docs/ pages when referring to them
There is some inconsistency, partially caused by the awkward naming
of the docs/ pages. But let's be consistent and use the "official" title.
If we ever change plural↔singular, we should use the same form everywhere.
(cherry picked from commit
d6029680df7c4991e37662467668816a83c0b806)
Zbigniew Jędrzejewski-Szmek [Tue, 27 Jul 2021 07:37:29 +0000 (09:37 +0200)]
man: fix assorted issues reported by the manpage-l10n project
Fixes #20297.
(cherry picked from commit
be0d27ee0c2a2cce39490b8cfc0e7d995fbd7644)
Lennart Poettering [Tue, 27 Jul 2021 15:11:09 +0000 (17:11 +0200)]
seccomp: move sched_getaffinity() from @system-service to @default
See: https://github.com/systemd/systemd/pull/20191#issuecomment-
881982739
In general, we shouldn't blanket move syscalls like this into @default,
given that glibc actually does have fallbacks, afaics. However, as
long as the syscalls are "read-only" and thus benign, I figure it's a
safe thing to do. But we should probably stick to a "if in doubt, don't"
rule, and put these syscalls in @system-service as default, but not into
@default.
I think in the real world @system-service is the sensible group people
should use, and not @default actually.
(cherry picked from commit
7df660e45682af5c40a236abe1bdc5ddcf3b3533)
Lennart Poettering [Tue, 27 Jul 2021 15:10:21 +0000 (17:10 +0200)]
seccomp: drop getrandom() from @system-service
It's included in @default now, since
14f4b1b568907350d023d1429c1aa4aaa8925f22, and since @system-service
pulls that in we can drop it from @system-service.
Follow-up for #20191
(cherry picked from commit
67347f37407489a68e12da8f75b78ae1d1168de9)
Khem Raj [Mon, 26 Jul 2021 17:58:46 +0000 (10:58 -0700)]
networkd: Include linux/netdevice.h header
This header provides definitions for NET_NAME_UNKNOWN ånd NET_NAME_ENUM
Fixes build issue found with non-glibc systems
../git/src/network/networkd-link.c:1203:52: error: 'NET_NAME_UNKNOWN' undeclared (first use in this function)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit
2a0d07d6a0d5be63c6c10cb0789412f584858ec1)
Frantisek Sumsal [Fri, 23 Jul 2021 10:53:31 +0000 (12:53 +0200)]
test: make sure we don't access an unbound variable
```
testsuite-60.sh[759]: + grep -q '(mount-monitor-dispatch) entered rate limit'
testsuite-60.sh[571]: + sleep 5
testsuite-60.sh[761]: ++ date -u +%s
testsuite-60.sh[571]: + [[
1627037066 -le
1627037061 ]]
testsuite-60.sh[571]: /usr/lib/systemd/tests/testdata/units/testsuite-60.sh: line 41: entered_rl: unbound variable
```
(cherry picked from commit
f571d9d5f051f7dbaee8d0dbf32e5a93180285e9)
ratijas [Fri, 23 Jul 2021 10:32:52 +0000 (13:32 +0300)]
man: Fix incorrect EFI vendor UUID (last missing nibble)
(cherry picked from commit
d2e84b601805ae89cf8cb1b383b30c7c97cac73d)
Luca Boccassi [Thu, 22 Jul 2021 21:21:10 +0000 (22:21 +0100)]
discover-image: mount as read-only when extracting metadata
We don't need to modify the image, and the loopback device is already set to read-only.
(cherry picked from commit
f6f4ec7951f429e8a470f8912cbeacde8fa1206e)
Cristian Rodríguez [Fri, 9 Jul 2021 21:19:05 +0000 (17:19 -0400)]
malloc() uses getrandom now
glibc master uses getrandom in malloc since https://sourceware.org/git/?p=glibc.git;a=commit;h=
fc859c304898a5ec72e0ba5269ed136ed0ea10e1 , getrandom should be in the default set so to avoid all non trivial programs to fallback to a PRNG.
(cherry picked from commit
14f4b1b568907350d023d1429c1aa4aaa8925f22)
David Tardon [Mon, 2 Aug 2021 11:31:04 +0000 (13:31 +0200)]
machined-varlink: fix double free
Fixes: #18599
(cherry picked from commit
feac9a1d1bf3f59adaa85f58b655ec01a111a29a)
Sergei Trofimovich [Sat, 31 Jul 2021 12:07:54 +0000 (13:07 +0100)]
coredump/stacktrace.c: avoid crash on binaries without NHDR
Observed as a crash on binaries built with gcc-master:
```
3 0x00005573b8841d6a in parse_package_metadata (name=name@entry=0x5573b901a620 "/a", id_json=0x0,
elf=0x5573b9028730, c=c@entry=0x7fffc688f790) at ../systemd-stable-249.2/src/coredump/stacktrace.c:157
4 0x00005573b884209e in module_callback (mod=0x7fffc688f6c0, userdata=<optimized out>,
name=0x5573b901a620 "/a", start=<optimized out>, arg=0x7fffc688f790)
at ../systemd-stable-249.2/src/coredump/stacktrace.c:306
5 0x00007f56d60dcbd5 in dwfl_getmodules (dwfl=0x5573b901fda0,
callback=callback@entry=0x5573b8841eb0 <module_callback>, arg=arg@entry=0x7fffc688f790, offset=offset@entry=0)
at ../../elfutils-0.185/libdwfl/dwfl_getmodules.c:86
6 0x00005573b884231b in parse_core (ret_package_metadata=0x7fffc688f848, ret=0x7fffc688f850,
executable=0x7fffc688f790 "\200\332\001\271sU", fd=21) at ../systemd-stable-249.2/src/coredump/stacktrace.c:366
7 coredump_parse_core (fd=fd@entry=6, executable=0x7fffc688f790 "\200\332\001\271sU", ret=ret@entry=0x7fffc688f850,
ret_package_metadata=ret_package_metadata@entry=0x7fffc688f848)
at ../systemd-stable-249.2/src/coredump/stacktrace.c:406
8 0x00005573b883f897 in submit_coredump (context=context@entry=0x7fffc688fa10, iovw=iovw@entry=0x7fffc688f990,
input_fd=input_fd@entry=5) at ../systemd-stable-249.2/src/coredump/coredump.c:827
9 0x00005573b883d339 in process_socket (fd=3) at ../systemd-stable-249.2/src/coredump/coredump.c:1041
10 run (argv=<optimized out>, argc=-
964101648) at ../systemd-stable-249.2/src/coredump/coredump.c:1416
11 main (argc=-
964101648, argv=<optimized out>) at ../systemd-stable-249.2/src/coredump/coredump.c:1422
```
Happens only on enabled elfutils symbolizer.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
(cherry picked from commit
1da3eef262078905ec14c707eeab655a17ae8bd2)
Florian Klink [Sat, 17 Jul 2021 17:49:42 +0000 (19:49 +0200)]
man: document nss-{resolve,myhostname} resolving in the other direction, too
(cherry picked from commit
946f7ce32cef44d9bfcf2dc594bb193341434f57)
Florian Klink [Thu, 1 Jul 2021 20:11:27 +0000 (22:11 +0200)]
man: stop recommending putting myhostname after dns
nss-resolve also looks in /etc/hosts, and has the same local hostname
resolving logic as nss-myhostname. We shouldn't recommend another order
than nss-resolve uses internally.
When nss-resolve is used, there's no possibility to override
nss-myhostname hosts via DNS *anyway*.
On top of that, it's not a good idea to allow DNS to override local
hostnames as all - at least not something we should advertise in the
docs.
Followup of
f918c67d38ba6ccd4eb0dc657f3f3155e5010cae /
https://github.com/systemd/systemd/pull/16754.
(cherry picked from commit
ce266330fc3bd6767451ac3400336cd9acebe9c1)
Zbigniew Jędrzejewski-Szmek [Thu, 22 Jul 2021 06:21:46 +0000 (08:21 +0200)]
pid1: propagate the original command line when reexecuting
When we reexec the manager in a container, we lose configuration settings on
the kernel command line:
$ systemd-nspawn -M rawhide -b systemd.status-unit-format=name systemd.show-status=yes
...
# tr '\0' ' ' </proc/1/cmdline
/usr/lib/systemd/systemd systemd.status_unit_format=combined systemd.show-status=yes
# sudo systemctl daemon-reexec
# tr '\0' ' ' </proc/1/cmdline
/usr/lib/systemd/systemd --system --deserialize 20
This means that after daemon-reexec, the settings that we gain from the
commandline are reset to defaults.
So let's reeexecute with the original arguments copied over, modulo some
filtering.
(cherry picked from commit
846f1da465beda990c1c01346311393f485df467)
Matthijs van Duin [Wed, 21 Jul 2021 09:10:36 +0000 (11:10 +0200)]
sd-bus: fix missing initializer in SD_BUS_VTABLE_END (#20253)
When two fields were added to the vtable.x.start struct, no initializers
for these were added to SD_BUS_VTABLE_END which also (ab)used that
struct (albeit sneakily by using non-designated initialization).
While C tolerates this, C++ prohibits these missing initializers, and
both g++ and clang++ will complain when using -Wextra.
This patch gives SD_BUS_VTABLE_END its own case in the union and
clarifies its initialization.
I tested the behaviour of g++ 10.2 and clang 11 in various cases. Both will warn
(-Wmissing-field-initializers, implied by -Wextra) if you provide initializers for some
but not all fields of a struct. Declaring x.end as empty struct or using an empty initializer
{} to initialize the union or one of its members is valid C++ but not C, although both gcc
and clang accept it without warning (even at -Wall -Wextra -std=c90/c++11) unless you
use -pedantic (which requires -std=c99/c++2a to support designated initializers).
Interestingly, .x = { .start = { 0, 0, NULL } } is the only initializer I found for the union
(among candidates for SD_BUS_VTABLE_END) where gcc doesn't zero-fill it entirely
when allocated on stack, it looked like it did in all other cases (I only examined this on
32-bit arm). clang always seems to initialize all bytes of the union.
[zjs: test case:
$ cat vtable-test.cc
#include "sd-bus.h"
const sd_bus_vtable vtable[] = {
SD_BUS_VTABLE_END
};
$ g++ -I src/systemd/ -Wall -Wmissing-field-initializers -c vtable-test.cc
vtable-test.cc:5:1: warning: missing initializer for member ‘sd_bus_vtable::<unnamed union>::<unnamed struct>::features’ [-Wmissing-field-initializers]
5 | };
| ^
vtable-test.cc:5:1: warning: missing initializer for member ‘sd_bus_vtable::<unnamed union>::<unnamed struct>::vtable_format_reference’ [-Wmissing-field-initializers]
$ clang++ -I src/systemd/ -Wmissing-field-initializers -c vtable-test.cc
vtable-test.cc:4:4: warning: missing field 'features' initializer [-Wmissing-field-initializers]
SD_BUS_VTABLE_END
^
src/systemd/sd-bus-vtable.h:188:28: note: expanded from macro 'SD_BUS_VTABLE_END'
.x = { { 0 } }, \
^
1 warning generated.
Both warnings are gone with the patch.]
(cherry picked from commit
654eaa403070d3c897454a5190603fda4071c3ff)
Aakash Singh [Mon, 19 Jul 2021 18:57:48 +0000 (00:27 +0530)]
hwdb: 60-keyboard::remove hardcoded definition for KEYBOARD_KEY_56 for MSI Prestige And Modern
(cherry picked from commit
30c9faff0d74ceb0cbafb8ecdd8573bc479984dc)
Zbigniew Jędrzejewski-Szmek [Wed, 23 Jun 2021 09:46:41 +0000 (11:46 +0200)]
basic/unit-name: do not use strdupa() on a path
The path may have unbounded length, for example through a fuse mount.
CVE-2021-33910: attacked controlled alloca() leads to crash in systemd and
ultimately a kernel panic. Systemd parses the content of /proc/self/mountinfo
and each mountpoint is passed to mount_setup_unit(), which calls
unit_name_path_escape() underneath. A local attacker who is able to mount a
filesystem with a very long path can crash systemd and the whole system.
https://bugzilla.redhat.com/show_bug.cgi?id=
1970887
The resulting string length is bounded by UNIT_NAME_MAX, which is 256. But we
can't easily check the length after simplification before doing the
simplification, which in turns uses a copy of the string we can write to.
So we can't reject paths that are too long before doing the duplication.
Hence the most obvious solution is to switch back to strdup(), as before
7410616cd9dbbec97cf98d75324da5cda2b2f7a2.
(cherry picked from commit
441e0115646d54f080e5c3bb0ba477c892861ab9)
rene [Tue, 20 Jul 2021 05:45:04 +0000 (15:45 +1000)]
Minor typo (#20254)
Correct resoulution with resolution.
(cherry picked from commit
b838bc11268ea461e8c58ce69e2f781be1821aa1)
duament [Sat, 17 Jul 2021 17:17:41 +0000 (01:17 +0800)]
shell-completion/zsh/_systemd-run: Fix completion of command names and arguments
(cherry picked from commit
3f49d1faf59acaa85aa5ad502c39b1a601d58d26)
Raul Tambre [Wed, 14 Jul 2021 11:58:31 +0000 (14:58 +0300)]
man/systemd.network: Fix duplicate Xfrm description
It's already listed along with others (Tunnel, VLAN, etc.) and its description matches those. The duplication was introduced by commit
c3006a485c9c35c0ab947479ff1dd7149fda9750.
(cherry picked from commit
534b5abce12847abc896fba24cafb99c101a2987)
Zbigniew Jędrzejewski-Szmek [Mon, 5 Jul 2021 19:29:11 +0000 (21:29 +0200)]
shared/format-table: allocate buffer of sufficient size
(cherry picked from commit
6dc57047ff0f1f9e98938ffb172dae06e6868b94)
Gibeom Gwon [Mon, 12 Jul 2021 17:57:43 +0000 (02:57 +0900)]
homed: allow systemd-homed access to FIDO2 devices
Add DeviceAllow= option for FIDO2 devices in systemd-homed.service.
(cherry picked from commit
85e424c0c852fcb92d108494a6efa9dd0ce943b2)
Zbigniew Jędrzejewski-Szmek [Mon, 12 Jul 2021 10:32:39 +0000 (12:32 +0200)]
systemctl: show error when help for unknown unit is requested
Fixes #20189. We would only log at debug level and return failure, which looks
like a noop for the user.
('help' accepts multiple arguments and will show multiple concatenated man
pages in that case. Actually, it will also show multiple concatenated man pages
if the Documentation= setting lists multiple pages. I don't think it's very
terribly useful, but, meh, I don't think we can do much better. If a user
requests a help for a two services, one known and one unknown, there'll now be
a line in the output. It's not very user friendly, but not exactly wrong too.)
(cherry picked from commit
75312ada5324d8adae3f3a0ed97f0acfc8b8bde5)
Ben Stockett [Fri, 9 Jul 2021 20:29:36 +0000 (20:29 +0000)]
Updated manpage for sd_bus_set_property
Updated manpage for sd_bus_set_property and sd_bus_set_propertyv. In the old manpage, these functions included the parameter sd_bus_message **reply when the actual function had no such argument.
(cherry picked from commit
4226dfafbac2167e1441a7a65d00c29c5016d4fb)
nassir90 [Fri, 9 Jul 2021 20:16:02 +0000 (21:16 +0100)]
Fixed typo (#20187)
* Fixed typo
Before, the file claimed that some systemd units are created "from other
configuration". It should have read "from other configuration files".
Co-authored-by: Nozz <nozolo90@gmail.com>
(cherry picked from commit
a814eae728a5e238e39d4a9d952ce8e309fa38fd)
Frantisek Sumsal [Fri, 9 Jul 2021 12:59:11 +0000 (14:59 +0200)]
test: strip binaries by default
Since
23f8e01 we always kept binaries unstripped, since $STRIP_BINARIES
is unset by default.
(cherry picked from commit
e68e473ba2d6383155c49337c3c5f2c0d3fb0b5f)
Frantisek Sumsal [Fri, 9 Jul 2021 12:44:38 +0000 (14:44 +0200)]
test: bump the test timeout to give ldconfig.service enough time to finish
Sometimes the ldconfig.service might take a bit longer to finish,
causing spurious test timeouts:
```
[ 1025.858923] systemd[24]: ldconfig.service: Executing: /sbin/ldconfig -X
...
[ 1043.883620] systemd[1]: ldconfig.service: Main process exited, code=exited, status=0/SUCCESS (success)
...
Trying to halt container. Send SIGTERM again to trigger immediate
termination.
Container TEST-52-HONORFIRSTSHUTDOWN terminated by signal KILL.
E: Test timed out after 20s
```
(cherry picked from commit
7fb4ee7aa5b6ffdf2e1e8e50a18630aa30f16505)
nl6720 [Fri, 9 Jul 2021 09:56:54 +0000 (12:56 +0300)]
docs: improve wording when mentioning the acronym "ESP"
"ESP" is "EFI system partition", so "ESP partition" is redundant.
(cherry picked from commit
250db1bf02b9fd73f2e0604acddbc20937c67d19)
Jan Palus [Wed, 7 Jul 2021 22:23:21 +0000 (00:23 +0200)]
hostnamed: correct variable with errno in fallback_chassis
fixes assertion failure on arm:
systemd-hostnamed[642]: Assertion '(_error) != 0' failed at src/hostname/hostnamed.c:207, function fallback_chassis(). Aborting.
(cherry picked from commit
105a4245ff13d588e1e848e8ee3cffd6185bd0ae)
(cherry picked from commit
4a44597bdd725f504ebd520b0deef7797dc46daa)
Luca Boccassi [Wed, 7 Jul 2021 16:32:01 +0000 (17:32 +0100)]
NEWS: finalize for v249
Lennart Poettering [Wed, 7 Jul 2021 13:57:51 +0000 (15:57 +0200)]
process-util: explicitly handle processes lacking parents in get_process_ppid()
Let's make sure we signal out-of-band via an error message if a process
doesn't have a parent process whose PID we could return. Otherwise we'll
too likely hide errors, as we return an invalid PID 0, which in other
contexts has special meaning (i.e. usually "myself").
Replaces: #20153
This is based on work by @dtardon, but goes a different route, by
ensuring we propagate a proper error in this case.
This modernizes the function in question a bit in other ways, i.e.
renames stuff and makes the return parameter optional.
Zbigniew Jędrzejewski-Szmek [Wed, 7 Jul 2021 13:28:15 +0000 (15:28 +0200)]
Merge pull request #20145 from bluca/prep
Preparations for v249
Lennart Poettering [Wed, 30 Jun 2021 16:45:32 +0000 (18:45 +0200)]
Revert "Add systemd-resolve backwards compatibility section to resolvectl docs"
This reverts commit
9fcfc0470df856c870dcfc6df78bfbc714da6bd2.
Zbigniew Jędrzejewski-Szmek [Wed, 7 Jul 2021 10:39:33 +0000 (12:39 +0200)]
meson: install the right README file in modprobe.d
We put the "global" README file there. Introduced
in
d83e90c73cf25a839f5e60f355baa0d38364ff41.
Zbigniew Jędrzejewski-Szmek [Fri, 2 Jul 2021 08:53:40 +0000 (10:53 +0200)]
basic/time-util: fix errno name
Fixup for
bdaeafea5dff32ccb479ecf8fe0a3173c995fbf5. This was supposed to be
pushed in an updated version, but I forgot to stage the change.
Luca Boccassi [Wed, 7 Jul 2021 09:32:35 +0000 (10:32 +0100)]
man: fix systemd-sleep.conf.xml whitespace
Follow-up for
33f899bd479534b0a920ce427cdf06739028f5ab
Luca Boccassi [Tue, 6 Jul 2021 21:53:49 +0000 (22:53 +0100)]
NEWS: note new user-visible change, drop 'in spe'