Commit Graph
49437 Commits
Author SHA1 Message Date
Yu Watanabe ef6495ebb2 network/ndisc: redirect routes do not have lifetime
Hence, ndisc_router_update_redirect() does nothing. Let's remove it.
Also, ndisc_request_route() does not set lifetime for the route, it is
not necessary to set the third argument.
2024-04-12 04:59:42 +09:00
Yu Watanabe 33cab1d4ef network/ndisc: introduce ndisc_request_router_route()
Then, make ndisc_request_route() generic and usable for configuring
routes based on both Router Advertisement and Redirect messages.

Note, ndisc_request_router() never set lifetime, so the dropped comment
in ndisc_request_redirect_route() is wrong.

No functional change, just refactoring.
2024-04-12 04:59:42 +09:00
Yu Watanabe 2e73aa507b network/ndisc: do not set per-route MTU and hop limit
Setting MTU announced in RA message to routes is problematic, as the
value may be larger than the device MTU (IFLA_MTU), and in such case the
route cannot be used.

These two properties are now set per-interface, and gracefully handled
such invalid cases. Hence not necessary to set them to each route.

Follow-up for #32195.
2024-04-12 04:59:38 +09:00
Antonio Alvarez Feijoo 3ec49af973 journal-remote: fix two minor memory leaks 2024-04-12 02:37:25 +08:00
Luca Boccassi 947143e897 Merge pull request #32215 from yuwata/network-ndisc-address-lifetime
network/ndisc: fix assignment of valid lifetime
2024-04-11 12:16:31 +01:00
Ludwig Nussel aadbe55925 creds: allow null when decrypting
pcrlock writes a credential file using null key. Make sure systemd-creds
can show the file
2024-04-11 12:15:32 +01:00
Daan De Meyer b50e9011d0 journal-remote: Use "event" instead of "events"
We use singular "event" everywhere else, so let's use it here as well.
2024-04-11 10:01:56 +02:00
Daan De Meyer dcd332ae00 journal-remote: Use sd_event_set_signal_exit()
This also fixes bugs in the previous code where we pass the server
object as userdata to sd_event_add_signal which means that sd-event
tries to use the value of the server pointer as its exit code when
a signal is triggered.
2024-04-11 10:01:16 +02:00
Yu Watanabe fc4a9c9ce6 test: PROJECT_FILE macro cannot be used in generated code
If the build directory is outside of the source tree, ASSERT_XYZ()
triggers the following warning:
===
[20/569] Compiling C object test-hashmap.p/meson-generated_.._src_test_test-hashmap-ordered.c.o
In file included from ../../home/watanabe/git/systemd/src/basic/macro.h:399,
                 from ../../home/watanabe/git/systemd/src/basic/alloc-util.h:10,
                 from src/test/test-hashmap-ordered.c:5:
src/test/test-hashmap-ordered.c: In function ‘test_ordered_hashmap_get’:
../../home/watanabe/git/systemd/src/basic/log.h:216:27: warning: offset ‘32’ outside bounds of constant string [-Warray-bounds=]
  216 |                         ? log_internal(_level, _e, PROJECT_FILE, __LINE__, __func__, __VA_ARGS__) \
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../home/watanabe/git/systemd/src/basic/log.h:238:24: note: in expansion of macro ‘log_full_errno_zerook’
  238 |                 (void) log_full_errno_zerook(level, 0, fmt, ##__VA_ARGS__); \
      |                        ^~~~~~~~~~~~~~~~~~~~~
../../home/watanabe/git/systemd/src/basic/log.h:248:28: note: in expansion of macro ‘log_full’
  248 | #define log_error(...)     log_full(LOG_ERR,     __VA_ARGS__)
      |                            ^~~~~~~~
../../home/watanabe/git/systemd/src/shared/tests.h:251:25: note: in expansion of macro ‘log_error’
  251 |                         log_error("%s:%i: Assertion failed: expected \"%s\" to be NULL, but \"%p\" != NULL",    \
      |                         ^~~~~~~~~
src/test/test-hashmap-ordered.c:614:9: note: in expansion of macro ‘ASSERT_NULL’
  614 |         ASSERT_NULL(r);
      |         ^~~~~~~~~~~
===
2024-04-11 09:29:22 +02:00
Daan De Meyer 8e7c157387 Merge pull request #32210 from YHNdnzj/execcommand-done
core: modernize ExecCommand parsing and fix one memory leak
2024-04-11 09:26:37 +02:00
Yu Watanabe e42a74803a network/ndisc: fix updating valid lifetime of configured address
This makes the logic mostly follows RFC 4862 section 5.5.3 (e),
as draft-ietf-6man-slaac-renum-07 is deprecated.

Fixes #31449.
2024-04-11 15:56:01 +09:00
Yu Watanabe 2d4c9c42ac network/ndisc: set provider address in caller
Follow-up for 43d184682d.

No functional change, just refactoring.
2024-04-11 15:56:01 +09:00
Yu Watanabe 1ae891037e Merge pull request #32202 from DaanDeMeyer/assert
tests: Improve assertion error messages
2024-04-11 09:51:49 +09:00
Luca Boccassi 798ea5c05a Merge pull request #32181 from YHNdnzj/open-file
Some fixes/improvements for OpenFile=
2024-04-10 23:15:56 +01:00
Luca Boccassi d0ea800943 Merge pull request #32195 from yuwata/network-ndisc-mtu
network: several cleanups for IPv6 MTU
2024-04-10 23:12:21 +01:00
Luca Boccassi bf5e509840 Merge pull request #32166 from yuwata/network-rfc7217-dad
network: generate another address on conflict
2024-04-10 22:59:01 +01:00
Yu Watanabe 8e91738fe9 libsystemd-network: do not trigger assertion by sd_*_is_running() with NULL
If systemd is built with developer mode, previously they trigger
hard assertions. Even built with release mode, we should not log about
that. Let's silently accept NULL and return false.

Prompted by https://github.com/systemd/systemd/pull/32166#issuecomment-2044710151.
2024-04-10 22:53:55 +01:00
Luca Boccassi af60f679a3 Merge pull request #32205 from YHNdnzj/bless-boot
Minor cleanup for bless-boot
2024-04-10 22:52:11 +01:00
Mike Yuan ee9895e295 core/dbus-execute: fix potential memory leak 2024-04-11 04:44:57 +08:00
Mike Yuan f09604b0a6 core/execute: introduce exec_command_free 2024-04-11 04:44:57 +08:00
Mike Yuan ccbb85a58b core/dbus-execute: modernize a bit 2024-04-11 04:44:36 +08:00
Mike Yuan 21b366121f core/load-fragment: modernize config_parse_exec 2024-04-11 04:44:35 +08:00
Daan De Meyer 681e39c1dc Introduce ASSERT_OK_ERRNO()
ASSERT_OK() is for functions that return negative errno. Let's
introduce ASSERT_OK_ERRNO() for syscalls that return -1 and store
the error in errno.
2024-04-10 18:24:26 +02:00
Daan De Meyer 29b27d59d5 tests: Improve assertion error messages 2024-04-10 18:20:23 +02:00
Mike Yuan 6f801feb4b bless-boot-generator: use generator_add_symlink 2024-04-10 23:40:53 +08:00
Mike Yuan 8b317c3400 core: use FOREACH_ARRAY at 3 more places 2024-04-10 23:40:53 +08:00
Ivan Kruglov 5152b8459a ASSERT_NULL/ASSERT_NOT_NULL 2024-04-10 16:57:30 +02:00
Mike Yuan c1f9509f79 shared/open-file: use xescape to escape ':'
Fixes #32179
2024-04-10 20:16:35 +08:00
Mike Yuan 4eb1feb110 shared/open-file: make open_file_free_many static inline 2024-04-10 20:16:35 +08:00
Mike Yuan c642f43131 core/exec-invoke: modernize get_open_file_fd a bit 2024-04-10 20:16:35 +08:00
Mike Yuan 9b076e86c0 core/exec-invoke: modernize connect_unix_harder 2024-04-10 20:16:34 +08:00
Antonio Alvarez Feijoo 866a469e5a test: add missing header to test.h
```
../src/shared/tests.h:361:28: error: implicit declaration of function ‘fork’ [-Werror=implicit-function-declaration]
  361 |                 int _pid = fork();                                                                              \
      |                            ^~~~
../src/test/test-macro.c:1114:9: note: in expansion of macro ‘ASSERT_SIGNAL’
 1114 |         ASSERT_SIGNAL(ASSERT_OK(-1), SIGABRT);
      |         ^~~~~~~~~~~~~
../src/shared/tests.h:369:25: error: implicit declaration of function ‘_exit’ [-Werror=implicit-function-declaration]
  369 |                         _exit(EXIT_SUCCESS);                                                                    \
      |                         ^~~~~
../src/test/test-macro.c:1114:9: note: in expansion of macro ‘ASSERT_SIGNAL’
 1114 |         ASSERT_SIGNAL(ASSERT_OK(-1), SIGABRT);
      |         ^~~~~~~~~~~~~
../src/shared/tests.h:369:25: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
  369 |                         _exit(EXIT_SUCCESS);                                                                    \
      |                         ^~~~~
../src/test/test-macro.c:1114:9: note: in expansion of macro ‘ASSERT_SIGNAL’
 1114 |         ASSERT_SIGNAL(ASSERT_OK(-1), SIGABRT);
      |         ^~~~~~~~~~~~~
../src/shared/tests.h:369:25: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
  369 |                         _exit(EXIT_SUCCESS);                                                                    \
      |                         ^~~~~
../src/test/test-macro.c:1115:9: note: in expansion of macro ‘ASSERT_SIGNAL’
 1115 |         ASSERT_SIGNAL(ASSERT_OK(-ENOANO), SIGABRT);
      |         ^~~~~~~~~~~~~
../src/test/test-macro.c:1119:21: error: implicit declaration of function ‘getpid’; did you mean ‘getpt’? [-Werror=implicit-function-declaration]
 1119 |         ASSERT_TRUE(getpid());
      |                     ^~~~~~
```

Follow-up for #32189
2024-04-10 11:09:52 +02:00
Lennart Poettering 5538b62f59 secure-boot: tighten enrollment logic a bit regarding file sizes
It's OK the dbx file is not loaded, but let's explicitly check for that
(i.e. if the buffer is actually non-NULL), rather than the size of the
bufer, since empty files actually do exist.

Or in other words, let's not magically suppress enrollment of empty
files, but let uefi firmware handle these on their own.

Follow-up for: 57ea8012d6
2024-04-10 16:59:37 +09:00
Lennart Poettering 6fea0f0ba0 boot: re-align table
We like our tables aligned.

(Also suppres the final two fields, which are all zeroes anyway, to
declutter a bit)
2024-04-10 16:59:37 +09:00
Lennart Poettering 3ee27b2580 resolved: dns_name_equal() can fail, handle that reasonably
Ignoring errors can be OK sometimes, but we should make this explicit.
2024-04-10 16:58:34 +09:00
Yu Watanabe cd226becd8 Merge pull request #32189 from mrc0mmand/test-tweaks
Another batch of assorted test tweaks
2024-04-10 16:57:00 +09:00
Yu Watanabe f8e15d6d98 Merge pull request #32191 from yuwata/network-persistent-storage-follow-ups
network: follow-ups for persistent storage
2024-04-10 16:54:39 +09:00
Lennart Poettering 475107f014 ndisc: use memzero() where appropriate 2024-04-10 16:54:20 +09:00
Lennart Poettering e1771c8ee6 sd-journal: make sure sd_journal_add_match() also accepts SIZE_MAX as size
In many of our internal functions that take a pointer + a size we have
introduced the rule that SIZE_MAX as size means: take strlen().

sd_journal_add_match() has something similar, but the special value is
0, not SIZE_MAX. This is a bit ugly, since a zero size data block is
theoretically fine. The only reason sd_journal_add_match() gets away
with using this special value is because valid matches must consist of
at least 2 chars, hence cannot be zero.

But let's make this more robust and less surprising when compared to the
rest of our code, and *also* accept SIZE_MAX to mean strlen().

No actual code changes, just some clean-up.
2024-04-10 16:54:03 +09:00
Daan De Meyer 7072777163 core: Serialize both pid and pidfd
If we try to deserialize only a pidfd that points to a process that
has been reaped, creating the pidref object will fail, which means that
we'll try to create a pidref object from the serialized pid that comes
next. If the pid has already been reused, this will succeed and we'll
now have a pidref that points to a different process.

Let's avoid this issue by serializing both the pidfd and the pid and
creating the pidref object directly from both. This means we'll reuse
the deserialized pidfd instead of opening a new one. We'll then immediately
notice the pidfd is dead and do the appropriate follow up depending on
the unit type.
2024-04-10 09:32:04 +02:00
Yu Watanabe 8c9ef90b19 network/ndisc: set IPv6 MTU through sysctl
Closes #31496.
2024-04-10 12:22:43 +09:00
Yu Watanabe fb71748e4f network/sysctl: round IPv6 MTU with the current device MTU rather than the maximum MTU
Otherwise, writing IPv6 MTU may fail.

This also makes link_set_ipv6_mtu() take log level about rounding IPv6 MTU,
and downgrade the log level from LOG_WARNING -> LOG_INFO, as we usually
use LOG_WARNING for per-interface critical failure.
2024-04-10 12:15:33 +09:00
Yu Watanabe eb426caae7 network: always set IPv6 MTU when we detect the device MTU is changed
Then, we can keep the IPv6 MTU even if the device MTU is changed by an
external tool, e.g. 'ip link set' command.
2024-04-10 12:15:33 +09:00
Yu Watanabe d4386dd1c8 network/setlink: adjust requested MTU when it is ready to set
This should not change any effective behavior.
Just for safety, and making the logic consistent with others, e.g.
setting master ifindex.
2024-04-10 12:15:33 +09:00
Yu Watanabe 0a07ee146d meson: use headers in our code base when checking filesystem table
Note, GFS2_MAGIC is also defined in missing_magic.h, so
linux/gfs2_ondisk.h is not necessary anymore.
2024-04-10 06:45:41 +09:00
Yu Watanabe 2c57fcabab basic/missing_magic: drop unnecessary entries and update comments 2024-04-10 06:40:32 +09:00
Yu Watanabe e1dad06100 home,resize-fs: replace XFS_SB_MAGIC -> XFS_SUPER_MAGIC 2024-04-10 06:38:29 +09:00
Yu Watanabe 613da12f9f basic/linux: copy magic.h to our source code tree
Let's import kernel headers into our source code tree.
2024-04-10 06:23:55 +09:00
Yu Watanabe 9ee34b21cc basic/linux: update linux headers
From Linux 6.9-rc3.
2024-04-10 06:23:00 +09:00
Yu Watanabe 4d97f7deeb network/varlink: fix error cause
Follow-up for e1254d0616.

Addresses https://github.com/systemd/systemd/pull/31811#discussion_r1557552244.
2024-04-10 04:59:43 +09:00