1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-12 13:18:14 +03:00
Commit Graph

55773 Commits

Author SHA1 Message Date
Yu Watanabe
2cb66bbdfb sd-dhcp-server: change the type of the client ID data 2022-01-24 04:18:20 +09:00
Yu Watanabe
255d493324 sd-dhcp-server: use free_and_replace() at one more place 2022-01-24 04:18:20 +09:00
Yu Watanabe
4f9dcf3dc5 sd-dhcp-server: shorten code a bit 2022-01-24 04:18:20 +09:00
Yu Watanabe
f4759ae051 sd-dhcp-server: drop unnecessary buffer duplication
The block try to find and remove the existing static lease which matches
the provided client ID, and the provided client ID will not be stored
anywhere. Hence, it is not necessary to duplicate it.
2022-01-24 04:16:41 +09:00
ash
de4fe289cf man: note more clearly that $SYSTEMD_PAGER requires $SYSTEMD_PAGERSECURE 2022-01-23 13:29:28 +09:00
Thomas Haller
2091c77931 sd-event: workaround maybe-uninitalized warning in sd_event_add_inotify()
With LTO, the compiler might think that the variable is uninitialized
(from NetworkManager's fork, with gcc-11.2.1-1.fc35):

    src/libnm-systemd-core/src/libsystemd/sd-event/sd-event.c: In function 'sd_event_add_inotify':
    src/libnm-systemd-core/src/libsystemd/sd-event/sd-event.c:2120: error: 's' may be used uninitialized in this function [-Werror=maybe-uninitialized]
     2120 |                 *ret = s;
          |
    src/libnm-systemd-core/src/libsystemd/sd-event/sd-event.c:2102: note: 's' was declared here
     2102 |         sd_event_source *s;
          |
    lto1: all warnings being treated as errors

In particular, that would happen for codepaths where event_add_inotify_fd_internal()
returns `-errno`, and the compiler cannot be sure that the returned value will
be negative. Technically, the compiler is right, but we rely on libc functions
to set errno correctly, so this only happens in code paths, where something
bad already happend.

While LTO is prone to such false warnings, we are largely able to build systemd
without warnings. So it is feasible and we should make the effort of working
around warnings as they appear.
2022-01-23 13:10:31 +09:00
Frantisek Sumsal
e7642152ae packit: switch the remaining jobs to F35
gcc-12 seems to be very unstable right now, so to keep our CI builds
useful let's move them to stable F35 for a while.

Follow-up to 478c632e00.
See:
  * https://github.com/systemd/systemd/issues/22215
  * https://bugzilla.redhat.com/show_bug.cgi?id=2043915
2022-01-22 15:27:04 +00:00
Yu Watanabe
f939a8984a
Merge pull request #22209 from systemd/wip/hadess/chassis-override
hostname: Allow overriding the chassis type from hwdb
2022-01-22 16:49:36 +09:00
Julia Kartseva
8fe9dbb926 bpf: name unnamed bpf programs
bpf-firewall and bpf-devices do not have names. This complicates
debugging with bpftool(8).

Assign names starting with 'sd_' prefix:
* firewall program names are 'sd_fw_ingress' for ingress attach
point and 'sd_fw_egress' for egress.
* 'sd_devices' for devices prog

'sd_' prefix is already used in source-compiled programs, e.g.
sd_restrictif_i, sd_restrictif_e, sd_bind6.

The name must not be longer than 15 characters or BPF_OBJ_NAME_LEN - 1.

Assign names only to programs loaded to kernel by systemd since
programs pinned to bpffs are already loaded.
2022-01-22 16:48:42 +09:00
YmrDtnJu
df4ec48f45 Fix journald audit logging with fields > N_IOVEC_AUDIT_FIELDS.
ELEMENTSOF(iovec) is not the correct value for the newly introduced parameter m
to function map_all_fields because it is the maximum number of elements in the
iovec array, including those reserved for N_IOVEC_META_FIELDS. The correct
value is the current number of already used elements in the array plus the
maximum number to use for fields decoded from the kernel audit message.
2022-01-21 23:12:45 +00:00
Jan Janssen
76fb85316e boot: Only build with debug symbols in developer mode
The debug symbols are of very limited use in proper deployments
unlike with regular userspace. Unless someone goes through the pain
of setting up an EFI debugger (assuming their firmware even supports
this in the first place) any provided debug symbols will just be
useless.
Debugging under QEMU is possible, but even then it is non-trivial
to set up, so anyone willing to go that far can just build in
developer mode.

Meanwhile, at least x86 firmware tends to refuse binaries that contain
debug symbols. We do strip the files when converted to PE anyway, but
the elf file needs to stay around on other arches as objcopy does not
support PE as input there.

Also, the generated debug symbols seem to be not reproducible when
building with LTO. Whether this is an issue in tooling or our side
is unclear. This works around this issue.

Fixes: #22157
2022-01-21 23:11:36 +00:00
Bastien Nocera
bdf182debe hwdb: Add Microsoft Surface Pro 1 chassis quirk
See https://github.com/systemd/systemd/issues/7390#issuecomment-345546127
2022-01-21 21:59:09 +01:00
Bastien Nocera
4b35eb2579 hostname: Allow overriding the chassis type from hwdb
Closes: #7390
2022-01-21 21:59:09 +01:00
Yu Watanabe
57cbf080b3
Merge pull request #22205 from yuwata/udevadm-info-cleanups
udevadm: keep watch directory and several cleanups
2022-01-22 02:45:36 +09:00
Daan De Meyer
e93ada9821 meson: Add missing test dependencies
Currently, running "meson build" followed by "meson test -C build"
will result in many failed tests due to missing dependencies. This
commit adds the missing dependencies to make sure no tests fail.
2022-01-22 01:56:03 +09:00
Yu Watanabe
4881a0d2d4 udevadm: add more assertions 2022-01-22 00:45:14 +09:00
Yu Watanabe
636ab00182 udevadm: simplify the code of removing udev state files 2022-01-22 00:44:51 +09:00
Yu Watanabe
9e0bd1d69b udevadm: split assertions
Then we can easily find which pointer is NULL.
2022-01-22 00:16:38 +09:00
Yu Watanabe
bd97980193 udevadm: do not remove watch directory
See the comment in the code.
2022-01-22 00:13:32 +09:00
Yu Watanabe
ac16a593cf
Merge pull request #22202 from mwilck/keep-links-02
udevadm info --cleanup-db: don't delete information for kept db entries
2022-01-22 00:10:09 +09:00
Luca Boccassi
a07b992606 core: add ExtensionDirectories= setting
Add a new setting that follows the same principle and implementation
as ExtensionImages, but using directories as sources.
It will be used to implement support for extending portable images
with directories, since portable services can already use a directory
as root.
2022-01-21 22:53:12 +09:00
Martin Wilck
7ec624147a udevadm: cleanup-db: don't delete information for kept db entries
devices with the db_persist property won't be deleted during database
cleanup. This applies to dm and md devices in particular.
For such devices, we should also keep the files under /run/udev/links,
/run/udev/tags, and /run/udev/watch, to make sure that after restart,
udevd has the same information about the devices as it did before
the cleanup.

If we don't do this, a lower-priority device that is discovered in
the coldplug phase may take over symlinks from a device that persisted.
Not removing the watches also enables udevd to resume watching a device
after restart.

Signed-off-by: Martin Wilck <mwilck@suse.com>
2022-01-21 13:32:20 +01:00
Martin Wilck
28d6e85451 udevadm: cleanup_dir: use dot_or_dot_dot()
which is safer than just checking dent[0].
Also, fix two style issues.
2022-01-21 13:31:42 +01:00
Luca Boccassi
071be9701a
Merge pull request #22195 from keszybz/more-specifiers
Add unit specifiers for fragment path and directory
2022-01-21 11:22:22 +00:00
Zbigniew Jędrzejewski-Szmek
607f032858 core: add %y/%Y specifiers for the fragment path of the unit
Fixes #6308: people want to be able to link a unit file via 'systemctl enable'
from a git checkout or such and refer to other files in the same repo.
The new specifiers make that easy.

%y/%Y is used because other more obvious choices like %d/%D or %p/%P are
not available because at least on of the two letters is already used.

The new specifiers are only available in units. Technically it would be
trivial to add then in [Install] too, but I don't see how they could be
useful, so I didn't do that.

I added both %y and %Y because both were requested in the issue, and because I
think both could be useful, depending on the case. %Y to refer to other files
in the same repo, and %y in the case where a single repo has multiple unit files,
and e.g. each unit has some corresponding asset named after the unit file.
2022-01-21 08:00:41 +01:00
Yu Watanabe
0d63af0977
Merge pull request #22199 from yuwata/resolve-reduce-attempts-reading-networkd-link-file
resolve: reduce attempts of reading networkd's link file
2022-01-21 09:45:45 +09:00
Yu Watanabe
6e8ecb8974 resolve: refuse to resolve empty hostname
Previously, varlink or dbus methods return
io.systemd.Resolve.NoNameServers or BUS_ERROR_NO_NAME_SERVERS if an
empty hostname is provided, and thus nss-resolve returns NSS_STATUS_TRYAGAIN.

That causes getaddrinfo() returns 'Temporary failure in name resolution'
instead of 'Name or service not known'.

This makes calling varlink or dbus method with an empty hostname result
-EINVAL, and hence nss-resolve returns NSS_STATUS_NOTFOUND.

Fixes RHBZ#2039854 (https://bugzilla.redhat.com/show_bug.cgi?id=2039854).
2022-01-21 09:45:29 +09:00
Yu Watanabe
9969c901d3
Merge pull request #22183 from anitazha/oomdkillfix
oomd: fix potential race between killing cgroups and cleaning up cgroups
2022-01-21 09:44:12 +09:00
Jan Janssen
1e11b6a76d meson: Add missing boot headers and use @INPUT@ for linking 2022-01-21 08:48:17 +09:00
Anita Zhang
914d4e99f4 oomd: handle situations when no cgroups are killed
Currently if systemd-oomd doesn't kill anything in a selected cgroup, it
selects a new candidate immediately. But if a selected cgroup wasn't killed,
it is likely due to it disappearing or getting cleaned up between the time
it was selected as a candidate and getting sent SIGKILL(s). We should handle
it as though systemd-oomd did perform a kill so that it will check
swap/pressure again before it tries to select a new candidate.
2022-01-20 14:15:13 -08:00
Anita Zhang
2ee209466b oomd: fix race with path unavailability when killing cgroups
There can be a situation where systemd-oomd would kill all of the processes
in a cgroup, pid1 would clean up that cgroup, and systemd-oomd would get
ENODEV trying to iterate the cgroup a final time to ensure it was empty.
systemd-oomd sees this as an error and immediately picks a new candidate even
though pressure may have recovered. To counter this, check and handle
path unavailability errnos specially.

Fixes: #22030
2022-01-20 14:15:11 -08:00
Zbigniew Jędrzejewski-Szmek
01c6946081 shared/specifier: treat NULL the same as ""
We would busily allocate an empty string to concatenate all of it's
zero characters to the output. Let's make things a bit simpler by letting
the specifier functions return NULL to mean "nothing to append".
2022-01-20 22:34:08 +01:00
Yu Watanabe
92796278f8 resolve: reduce attempts of reading link file
The function `link_relevant()` is called repeatedly in `link_allocate_scopes()`.
Let's not read networkd's link file in `link_relevant()`.

Closes #22190.
2022-01-21 06:22:39 +09:00
Yu Watanabe
1a4152f02b wait-online: use network_link_get_operational_state() 2022-01-21 06:22:39 +09:00
Yu Watanabe
61dc4b9ea9 network-util: introduce network_link_get_operational_state() 2022-01-21 06:22:21 +09:00
Yu Watanabe
e9662a28a4 resolve: use FLAGS_SET() macro 2022-01-21 06:22:16 +09:00
Yu Watanabe
12f45cbbbe resolve: use netif_has_carrier() 2022-01-21 05:07:10 +09:00
Yu Watanabe
61e964df71 netif-util: introduce netif_has_carrier() 2022-01-21 05:02:42 +09:00
Yu Watanabe
605bb1634b resolve: drop redundant call of link_allocate_scopes() and link_add_rrs()
In `manager_process_link()`, the function `link_update()` is called just
after `link_process_rtnl()`, and `link_update()` also calls
`link_allocate_scopes()` and `link_add_rrs()`. Hence, the calls in
`link_process_rtnl()` are redundant.
2022-01-21 04:46:20 +09:00
Yu Watanabe
8827f4106b resolve: use log_link_warning_errno() or freinds more 2022-01-21 04:43:37 +09:00
Yu Watanabe
57786db797 resolve: add debuging log of interface name change 2022-01-21 04:33:11 +09:00
Evgeny Vereshchagin
381ccb5cc0 tests: make fuzz-journal-remote less flaky
by always calling journal_remote_server_destroy, which resets global
variables like journal_remote_server_global. It should prevent crashes like
```
Assertion 'journal_remote_server_global == NULL' failed at src/journal-remote/journal-remote.c:312, function int journal_remote_server_init(RemoteServer *, const char *, JournalWriteSplitMode, _Bool, _Bool)(). Aborting.
AddressSanitizer:DEADLYSIGNAL
=================================================================
==24769==ERROR: AddressSanitizer: ABRT on unknown address 0x0539000060c1 (pc 0x7f23b4d5818b bp 0x7ffcbc4080c0 sp 0x7ffcbc407e70 T0)
SCARINESS: 10 (signal)
    #0 0x7f23b4d5818b in raise /build/glibc-eX1tMB/glibc-2.31/sysdeps/unix/sysv/linux/raise.c:51:1
    #1 0x7f23b4d37858 in abort /build/glibc-eX1tMB/glibc-2.31/stdlib/abort.c:79:7
    #2 0x7f23b5731809 in log_assert_failed systemd/src/basic/log.c:866:9
```
2022-01-21 04:20:47 +09:00
Zbigniew Jędrzejewski-Szmek
601dc59be2 Use ASSERT_PTR() in more places 2022-01-20 17:29:51 +01:00
Evgeny Vereshchagin
478c632e00 ci: switch to fedora-35 on i386 on Packit
systemd seems to be failing to compile there with gcc-12 but considering
that gcc-12 hasn't been released yet it doesn't seem to make sense
to add workarounds to get it to compile there. Until gcc-12 is
stabilized it should be enough to build systemd on fedora-35 to
make sure it's buildable on i386.
2022-01-20 21:02:16 +09:00
Thomas Batten
5888fa9b16 hwdb: Add accel orientation quirk for the GPD Pocket 3 2022-01-20 19:54:53 +09:00
Tyson Whitehead
230ed4c4ba hwdb: CH Pro Pedals not classified correctly due to no buttons 2022-01-20 19:54:26 +09:00
Evgeny Vereshchagin
e0ec0450e9 tests: fuzz etc_hosts_parse
That's just a follow-up to https://github.com/systemd/systemd/pull/22179
2022-01-20 15:53:48 +09:00
Yu Watanabe
98b1eb711c resolve: fix assertion triggered when r == 0
Fixes #22178.
2022-01-20 15:52:14 +09:00
Jan Janssen
acac88340a bus: Use OrderedSet for introspection
Otherwise, the generated xml files are not reproducible.
2022-01-19 23:07:59 +00:00
Luca Boccassi
de843f8582
Merge pull request #21865 from yuwata/network-sr-iov
udev/net: support configuring SR-IOV virtual functions through .link file
2022-01-19 22:38:00 +00:00