Commit Graph
55992 Commits
Author SHA1 Message Date
Lennart Poettering 23b1e8d087 units: we need systemd-journald.service from systemd-journal-flush.service
This is a follow-up for d5ee050ffc, and
reintroduces a requirement dep from systemd-journal-flush.service onto
systemd-journald.service, but a weaker one than originally: a Wants= one
instead of a Requires= one.

Why? Simply because the service issues an IPC call to the journald,
hence it should pull it in. (Note that socket activation doesn't happen
for the Varlink socket it uses, hence we should pull in the service
itself.)
2022-02-02 05:09:39 +09:00
Yu Watanabe 82140e956c Merge pull request #22310 from yuwata/sd-dhcp-lease-fixes
sd-dhcp-lease: two fixes
2022-02-02 04:55:07 +09:00
Luca Boccassi 1e15b7c7f7 Merge pull request #22343 from poettering/assert-se-efi
efi: add/user assert_se()/ASSERT_SE_PTR() for OOM handling
2022-02-01 19:26:57 +00:00
Lennart Poettering c0f65909cb analyze: correctly mention that --json= is also understood by inspect-elf 2022-02-02 03:55:51 +09:00
Lennart Poettering bb7031bcaa NEWS: minor formatting tweaks 2022-02-01 17:59:49 +01:00
Luca Boccassi a1cad433bd Merge pull request #22341 from poettering/pam-end-fix
pid1: pam_end() PAM_DATA_SILENT fix
2022-02-01 16:34:00 +00:00
Lennart Poettering 007e03b284 util: another set of CVE-2021-4034 assert()s
It's a good idea that we validate argc/argv when we are supposed to
store them away.
2022-02-01 14:44:08 +00:00
Lennart Poettering 1462d2451a efi: use assert_se() instead of assert() to guard for OOM issues in EFI code 2022-02-01 15:31:20 +01:00
Lennart Poettering 8890ec82f5 macro: add ASSERT_SE_PTR() macro
ASSERT_SE_PTR() is like ASSERT_PTR() but uses assert_se() instead of
assert() internally.

Code should use ASSERT_SE_PTR() where the check should never be
optimized away, even if NDEBUG is set.

Rationale: assert() is the right choice for validating assumptions about
our own code, i.e. checking conditions that are "impossible" to not
hold, because we ourselves hacked things up the "right" way of course.
assert_se() is the right choice for tests that come with a weaker
guarantee, they encode assumptions over other's API behaviour, i.e.
whether something can fail there or not.

When developing tools that are not oom-safe assert_se() is the right
choice: we know that on Linux OOM doesn't really happen, even though
theoretically the API allows it to happen.

Usecase for ASSERT_SE_PTR() is mostly the fatal memory allocation logic
for EFI memory allocations. So far it used regular assert() i.e. OOM
failurs would be totally ignored if NDEBUG is set. We'd rather have our
EFI program to print an assert message and freeze instead though.
2022-02-01 15:31:05 +01:00
Lennart Poettering 3b23a6c40a fundamental: support assert_se() in EFI mode too 2022-02-01 15:29:21 +01:00
Luca Boccassi 98fd285c28 Merge pull request #22331 from yuwata/network-xfrm-interface-id
network: xfrm: refuse zero interface ID
2022-02-01 13:25:38 +00:00
Lennart Poettering 421bb42d1b execute: document that the 'env' param is input *and* output 2022-02-01 13:50:28 +01:00
Lennart Poettering cafc5ca147 execute: line break comments a bit less aggressively 2022-02-01 13:50:13 +01:00
Lennart Poettering 46e5bbab58 execute: use _cleanup_ logic where appropriate 2022-02-01 13:49:56 +01:00
Lennart Poettering 7feb2b5737 pid1: pass PAM_DATA_SILENT to pam_end() in child
Fixes: #22318
2022-02-01 12:37:51 +01:00
Yu Watanabe bab29f2ab7 network: dhcp-server: also refuse link local address to use as the server address 2022-02-01 11:18:53 +00:00
Yu Watanabe b0f83c2d82 Merge pull request #22254 from yuwata/dhcp-server-fix-segfault
sd-dhcp-server: remove lease with hashmap_remove_value()
2022-02-01 14:10:11 +09:00
Yu Watanabe a8dfcd2c0f Merge pull request #22319 from yuwata/network-use-reconfigure
network: also use link_reconfigure_impl() to initially assign .network file
2022-02-01 14:09:32 +09:00
Yu Watanabe 020483b248 test-network: set xfrm interface ID
This also unifies two tests for xfrm, and checks the output of
'ip link' command.

Fixes #22329.
2022-02-01 13:26:43 +09:00
Yu Watanabe fd11005951 network: xfrm: refuse zero interface ID
Since kernel 5.17-rc1, 5.16.3, and 5.15.17 (more specifically,
https://github.com/torvalds/linux/commit/8dce43919566f06e865f7e8949f5c10d8c2493f5)
the kernel refuses to create an xfrm interface with zero ID.
2022-02-01 13:15:11 +09:00
James Hilliard 04660b10d3 meson: use full argument names for bpftool gen commands
This should be a purely cosmetic change.
2022-02-01 12:26:30 +09:00
Yu Watanabe 06cf04dff4 sd-dhcp-lease: fix memleak
Fixes https://github.com/systemd/systemd/pull/22294#issuecomment-1024840811.
2022-02-01 12:23:59 +09:00
Yu Watanabe 7b86854307 sd-dhcp-lease: fix reading unaligned memory
The destination address was read twice, one is for prefixlen, and
other is for destination address itself. And for prefixlen, the address
might be read from unaligned buffer.

This also modernizes the code.
2022-02-01 12:23:55 +09:00
Yu Watanabe a46abf2e34 fuzz-dhcp-server: add static leases 2022-02-01 11:56:22 +09:00
Yu Watanabe 6796c5a9c4 test-dhcp-server: add tests for static lease 2022-02-01 11:56:22 +09:00
Yu Watanabe 7b5445e74e test-dhcp-server: add tests for setting static DHCP lease 2022-02-01 11:56:22 +09:00
Yu Watanabe 99e65b7df3 test-dhcp-server: add usual headers 2022-02-01 11:56:22 +09:00
Yu Watanabe 4f3cb2465a test-dhcp-server: run a test earlier which does not require privilege 2022-02-01 11:56:22 +09:00
Yu Watanabe 4e2319afe4 test-dhcp-server: move sd-event allocation 2022-02-01 11:56:22 +09:00
Yu Watanabe 7e0a8bf1ce test-dhcp-server: use log_tests_skipped_errno() 2022-02-01 11:56:22 +09:00
Yu Watanabe 8b572f7ab2 sd-dhcp-server: split out logic to ACK request 2022-02-01 11:56:22 +09:00
Yu Watanabe bd1a3eb65b sd-dhcp-server: do not assign address reserved for static leases to non-matching clients
This fix the root cause of the issue #22253.
2022-02-01 11:56:22 +09:00
Yu Watanabe 7e98fe05a0 sd-dhcp-server: explicitly refuse when conflicting address is requested 2022-02-01 11:56:22 +09:00
Yu Watanabe e2ba408084 sd-dhcp-server: do not assign an address from pool when a static lease for the client ID exists 2022-02-01 11:56:22 +09:00
Yu Watanabe 5cc8be890d sd-dhcp-server: rename get_pool_offset() -> address_is_in_pool()
As, the value of pool_offset is not used.
2022-02-01 11:56:22 +09:00
Yu Watanabe eb5bff9c9d sd-dhcp-server: rename server_send_nak() -> server_send_nak_or_ignore()
And logs error in the function.
2022-02-01 11:56:01 +09:00
Yu Watanabe 8a7d048d1d sd-dhcp-server: set DHCPLease::server before hashmap_put()
Otherwise, if the second push is failed, then the first hashmap contains
dirty entry.

Also, this makes hashmap_remove_value() used when removing leases to
make not wrong lease is removed from the hashmap.

Note, this just hide the root cause of the issue #22253, which will be
fixed in later commit.

Fixes #22253.
2022-02-01 11:45:51 +09:00
Yu Watanabe 37e219800f sd-dhcp-server: fix indentation 2022-02-01 11:45:51 +09:00
Yu Watanabe 48be485b71 sd-dhcp-server: rename argument and add one missing assertion 2022-02-01 11:45:51 +09:00
Yu Watanabe 6277e48fa9 sd-dhcp-server: do not use implicit cast to boolean from integer 2022-02-01 11:45:51 +09:00
Yu Watanabe a2a801926d sd-dhcp-server: refuse zero length client ID 2022-02-01 11:45:51 +09:00
Yu Watanabe 0a195d4186 sd-dhcp-server: do not log "STOPPED" when already stopped 2022-02-01 11:45:51 +09:00
Yu Watanabe fb96111946 network: also use link_reconfigure_impl() to initially assign .network file 2022-02-01 11:38:01 +09:00
Yu Watanabe bb193d2df2 network: drop tiny wrapper used only one place anymore 2022-02-01 11:37:45 +09:00
Yu Watanabe 3cf58ef316 network: do not free bound_by carrier map on reconfigure
Otherwise, if a link enters unmanaged state, then its carrier state does
not propagated to other interfaces.
2022-02-01 11:37:01 +09:00
Yu Watanabe b69bfa4305 network: do not remove localhost address
Managing loopback interfaces by networkd is not recommended, but supporeted.
Even such spurious situation, do not drop the localhost addresses.
2022-02-01 11:30:37 +09:00
Yu Watanabe 259c65f36c network: move ndisc_flush() to link_stop_engines()
As it is not related to any static configs.
2022-02-01 11:30:37 +09:00
Yu Watanabe a0e99a377a network: remove only managed configs on reconfigure or carrier lost
Otherwise, if the carrir of the non-managed interface is lost, the
configs such as addresses or routes on the interface will be removed by
networkd.
2022-02-01 11:30:37 +09:00
Luca Boccassi 9d67fb0e33 Merge pull request #22175 from keszybz/kernel-install-mkosi-initrd
kernel-install: add support for KERNEL_INSTALL_INITRD_GENERATOR and KERNEL_INSTALL_STAGING_AREA
2022-01-31 23:09:46 +00:00
Frantisek Sumsal e3d1ffcc48 network: s/confiured/configured/
A quick typo fix I noticed whilst debugging.
2022-01-31 23:07:41 +00:00