]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
4 years agotest-oomd-util: fix running in mkosi 19179/head
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.

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

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

4 years agoMerge pull request #19175 from keszybz/maybe-unitialized-warning-2
Luca Boccassi [Thu, 1 Apr 2021 18:45:08 +0000 (19:45 +0100)] 
Merge pull request #19175 from keszybz/maybe-unitialized-warning-2

Third batch of fixes and suppressions for maybe-unitialized warnings

4 years agoresolved: use _cleanup_(gcry_md_closep) in one more place
Luca Boccassi [Thu, 1 Apr 2021 08:48:36 +0000 (09:48 +0100)] 
resolved: use _cleanup_(gcry_md_closep) in one more place

Documentation says gcry_md_close will ignore a NULL input so should be safe:

https://gnupg.org/documentation/manuals/gcrypt/Working-with-hash-algorithms.html

Makes Coverity happy, follow-up for 248b1e0aa4

CID #1451555

4 years agolibudev: fix return of udev_monitor_filter_add_match_subsystem_devtype()
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 19:28:11 +0000 (21:28 +0200)] 
libudev: fix return of udev_monitor_filter_add_match_subsystem_devtype()

Follow-up for 7117842657c0fc5a3446b6fe158615279cf2d650.

sd_device_monitor_filter_add_match_subsystem_devtype() now returns 1 to signify
that something was done, and 0 to signify that nothing was done, but
udev_monitor_filter_add_match_subsystem_devtype() needs to return 0 as documented.

udev_monitor_filter_add_match_tag() is adjusted to match.

This makes gdm start successfully here again.
Before, it would just not boot, with nothing very obvious in the logs:
gdm[1756]: Gdm: GdmDisplay: Session never registered, failing

Replaces #19171.

4 years agoresolved: avoid passing unitialized variable 19175/head
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.

4 years agovarious: silence gcc warnings
Zbigniew Jędrzejewski-Szmek [Thu, 1 Apr 2021 08:37:11 +0000 (10:37 +0200)] 
various: silence gcc warnings

AFAICT, gcc is just being stupid in all those cases.

4 years agoshared/dissect-image: silence gcc warning
Zbigniew Jędrzejewski-Szmek [Thu, 1 Apr 2021 08:53:42 +0000 (10:53 +0200)] 
shared/dissect-image: silence gcc warning

4 years agosd-netlink: drop unnecessary forward declaration
Zbigniew Jędrzejewski-Szmek [Thu, 1 Apr 2021 08:22:50 +0000 (10:22 +0200)] 
sd-netlink: drop unnecessary forward declaration

4 years agobacklight: refactor get_max_brightness() to appease gcc
Zbigniew Jędrzejewski-Szmek [Thu, 1 Apr 2021 08:19:07 +0000 (10:19 +0200)] 
backlight: refactor get_max_brightness() to appease gcc

The old code was just fine, but gcc doesn't understand that max_brightness is
initialized. Let's rework it a bit to move some logic to the main function. Now
get_max_brightness() just retrieves and parses the attribute, and the main
function decides what to do with it.

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_*

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

4 years agoMerge pull request #19168 from keszybz/nss-resolve-unfoobar
Luca Boccassi [Thu, 1 Apr 2021 09:07:46 +0000 (10:07 +0100)] 
Merge pull request #19168 from keszybz/nss-resolve-unfoobar

Fix nss-resolve reverse alias lookups

4 years agoMerge pull request #19169 from keszybz/reenable-maybe-unitialized-warning
Luca Boccassi [Thu, 1 Apr 2021 08:36:46 +0000 (09:36 +0100)] 
Merge pull request #19169 from keszybz/reenable-maybe-unitialized-warning

Fix a bunch of maybe-unitialized warnings but don't enable the warning yet

4 years agologind: Rename kexec reboot flag
Deepak Rawat [Wed, 31 Mar 2021 16:44:07 +0000 (09:44 -0700)] 
logind: Rename kexec reboot flag

Also change error message to be more meanigful. No change in
functionality.

Fixes: 0d96caa5c0
4 years agobasic/env-util: silence two gcc warnings 19169/head
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 16:13:00 +0000 (18:13 +0200)] 
basic/env-util: silence two gcc warnings

4 years agocryptsetup: silence gcc maybe-unused warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 16:07:57 +0000 (18:07 +0200)] 
cryptsetup: silence gcc maybe-unused warning

Simplify one debug stmt while at it.

4 years agosystemctl: silence gcc maybe-unused warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 16:07:25 +0000 (18:07 +0200)] 
systemctl: silence gcc maybe-unused warning

4 years agoshared/pretty-print: silence gcc warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 15:46:04 +0000 (17:46 +0200)] 
shared/pretty-print: silence gcc warning

gcc was very unhappy for some reason:

[988/1664] Compiling C object systemd-oomd.p/src_oom_oomd.c.o
In file included from ../src/basic/path-util.h:10,
                 from ../src/shared/pretty-print.c:14,
                 from ../src/oom/oomd.c:15:
../src/shared/pretty-print.c: In function ‘conf_files_cat’:
../src/basic/strv.h:123:32: warning: ‘prefixes’ may be used uninitialized [-Wmaybe-uninitialized]
  123 |         for ((s) = (l); (s) && *(s); (s)++)
      |                                ^
In file included from ../src/oom/oomd.c:15:
../src/shared/pretty-print.c:283:16: note: ‘prefixes’ was declared here
  283 |         char **prefixes, **prefix;
      |                ^~~~~~~~
../src/shared/pretty-print.c:305:12: warning: ‘is_collection’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  305 |         if (!is_collection) {
      |            ^
../src/shared/pretty-print.c:301:13: warning: ‘extension’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  301 |         r = conf_files_list_strv(&files, extension, root, 0, (const char* const*) dirs);
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Maybe this is caused by the statis char** variables?

4 years agocore: silence gcc warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 15:37:25 +0000 (17:37 +0200)] 
core: silence gcc warning

4 years agoshared/bus-message-util: silence gcc warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 15:32:04 +0000 (17:32 +0200)] 
shared/bus-message-util: silence gcc warning

[1/429] Compiling C object src/shared/libsystemd-shared-248.a.p/bus-message-util.c.o
../src/shared/bus-message-util.c: In function ‘bus_message_read_dns_servers’:
../src/shared/bus-message-util.c:165:21: warning: ‘family’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  165 |                 r = in_addr_full_new(family, &a, port, 0, server_name, dns + n);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/shared/bus-message-util.c:165:21: warning: ‘port’ may be used uninitialized in this function [-Wmaybe-uninitialized]
../src/shared/bus-message-util.c:165:21: warning: ‘server_name’ may be used uninitialized in this function [-Wmaybe-uninitialized]

The warning would be there despite all the asserts in bus_error_setfv() and
sd_bus_error_set(). So let's add an explicit assert.

4 years agoshared/conf-parser: fix unitialized variable
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 15:24:26 +0000 (17:24 +0200)] 
shared/conf-parser: fix unitialized variable

Introduced in 4f9ff96a55187927a4164a19df580329f4c6522b.

4 years agotest-capability: silence gcc warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 15:13:24 +0000 (17:13 +0200)] 
test-capability: silence gcc warning

[2/3] Compiling C object test-capability.p/src_test_test-capability.c.o
../src/test/test-capability.c: In function ‘main’:
../src/test/test-capability.c:270:12: warning: ‘run_ambient’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  270 |         if (run_ambient)
      |            ^

gcc-11.0.1-0.3.fc34.x86_64

4 years agobasic/cgroup-util: silence gcc warning about unitialized variable
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 12:21:21 +0000 (14:21 +0200)] 
basic/cgroup-util: silence gcc warning about unitialized variable

4 years agosd-event: silence gcc's maybe-unitialized warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 12:06:39 +0000 (14:06 +0200)] 
sd-event: silence gcc's maybe-unitialized warning

[91/180] Compiling C object libsystemd.a.p/src_libsystemd_sd-event_sd-event.c.o
In file included from ../src/basic/macro.h:12,
                 from ../src/basic/alloc-util.h:9,
                 from ../src/libsystemd/sd-event/sd-event.c:11:
../src/libsystemd/sd-event/sd-event.c: In function ‘sd_event_wait’:
../src/fundamental/macro-fundamental.h:86:63: warning: ‘child_min_priority’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   86 |                 UNIQ_T(A, aq) < UNIQ_T(B, bq) ? UNIQ_T(A, aq) : UNIQ_T(B, bq); \
      |                                                               ^
../src/libsystemd/sd-event/sd-event.c:3983:45: note: ‘child_min_priority’ was declared here
 3983 |                 int64_t epoll_min_priority, child_min_priority;
      |                                             ^~~~~~~~~~~~~~~~~~

Alternative to #19159.

4 years agovarlink: use two local flag variables to silence gcc warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 10:43:00 +0000 (12:43 +0200)] 
varlink: use two local flag variables to silence gcc warning

[59/655] Compiling C object src/shared/libsystemd-shared-248.a.p/varlink.c.o
../src/shared/varlink.c: In function ‘varlink_write’:
../src/shared/varlink.c:459:12: warning: ‘n’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  459 |         if (n < 0) {
      |            ^
../src/shared/varlink.c: In function ‘varlink_process’:
../src/shared/varlink.c:541:12: warning: ‘n’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  541 |         if (n < 0) {
      |            ^
../src/shared/varlink.c:486:17: note: ‘n’ was declared here
  486 |         ssize_t n;
      |                 ^

4 years agoman: split the description of sd_bus_error_set()
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 09:46:31 +0000 (11:46 +0200)] 
man: split the description of sd_bus_error_set()

It was one giant all of text in pseudo-random order. Let's split it into
paragraphs talk about one subject each.

And unfortunately, the description of what happens when the error is not
set was not correct. In general, various functions treat 0/NULL as
not-an-error, and return 0.

4 years agosd-bus: add asserts showing that sd_bus_error_setf() returns negative
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 09:45:15 +0000 (11:45 +0200)] 
sd-bus: add asserts showing that sd_bus_error_setf() returns negative

(when name is specified).

4 years agosd-bus: add assert to tell the compiler that the error code is positive
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 09:27:15 +0000 (11:27 +0200)] 
sd-bus: add assert to tell the compiler that the error code is positive

I was hoping it would help with the following gcc warning:
[35/657] Compiling C object src/shared/libsystemd-shared-248.a.p/bus-message-util.c.o
../src/shared/bus-message-util.c: In function ‘bus_message_read_dns_servers’:
../src/shared/bus-message-util.c:165:21: warning: ‘family’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  165 |                 r = in_addr_full_new(family, &a, port, 0, server_name, dns + n);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/shared/bus-message-util.c:165:21: warning: ‘port’ may be used uninitialized in this function [-Wmaybe-uninitialized]
../src/shared/bus-message-util.c:165:21: warning: ‘server_name’ may be used uninitialized in this function [-Wmaybe-uninitialized]

It actually doesn't, but the compiler has a point here: the code is specified
in sd_bus_error_map[], and it has no way of knowning that we want it to be a
positive value.

I think this should be an assert, because if this assumption fails, a
programming error has occured, something that'd want to catch.

4 years agobasic/fileio: silence gcc's maybe-unitialized warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 09:09:39 +0000 (11:09 +0200)] 
basic/fileio: silence gcc's maybe-unitialized warning

[11/657] Compiling C object src/basic/libbasic.a.p/fileio.c.o
../src/basic/fileio.c: In function ‘write_string_stream_ts’:
../src/basic/fileio.c:167:21: warning: ‘fd’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  167 |                 if (futimens(fd, twice) < 0)
      |                     ^~~~~~~~~~~~~~~~~~~

4 years agobasic/socket-util: add hint to silence gcc's maybe-unitialized warning
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 09:06:41 +0000 (11:06 +0200)] 
basic/socket-util: add hint to silence gcc's maybe-unitialized warning

[59/1551] Compiling C object src/basic/libbasic.a.p/socket-util.c.o
../src/basic/socket-util.c: In function ‘socket_get_mtu’:
../src/basic/socket-util.c:1393:16: warning: ‘mtu’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 1393 |         *ret = (size_t) mtu;
      |                ^~~~~~~~~~~~

4 years agoresolved: drop unnecessary {}
Zbigniew Jędrzejewski-Szmek [Mon, 29 Mar 2021 18:58:44 +0000 (20:58 +0200)] 
resolved: drop unnecessary {}

4 years agonss-resolve: define variables in the body 19168/head
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 14:48:04 +0000 (16:48 +0200)] 
nss-resolve: define variables in the body

Same motivation as in the parent commit: let's define variables later, ideally
right when they are first initialized, so it's easier to figure out that they
are properly initialized.

error_id and r_tuple* were previously initialized, but I don't see why they
would need to be.

No functional change intended.

4 years agonss-resolve: fix parsing of io.systemd.Resolve.ResolveAddress reply
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 14:20:30 +0000 (16:20 +0200)] 
nss-resolve: fix parsing of io.systemd.Resolve.ResolveAddress reply

Since the switch to varlink in 0c73f4f075a2d23f7cabe708b589f19f4bbbec37, the
code wasn't functional. The JSON_VARIANT_UNSIGNED/JSON_VARIANT_STRING mismatch
meant that we'd reject any reply. Once past that, the code would use
unitialized 'c' and 'n' variables, so it's lucky we never got that far ;)

With -Wmaybe-unitialized, gcc would warn.

I think that declaring the huge list of local variables with very short names
at the top of the function was making it harder to understand what is going on
in the function. So let's rename the variables a bit, and initialize them upon
declaration if possible.

$ build/test-nss-hosts resolve 1.1.1.1 1.0.0.1 10.38.5.41
======== resolve ========
_nss_resolve_gethostbyaddr2_r("1.1.1.1") → status=NSS_STATUS_SUCCESS
                   errno=999/--- h_errno=0/Resolver Error 0 (no error) ttl=0
        "one.one.one.one"
        AF_INET 1.1.1.1

_nss_resolve_gethostbyaddr_r("1.1.1.1") → status=NSS_STATUS_SUCCESS
                   errno=999/--- h_errno=0/Resolver Error 0 (no error)
        "one.one.one.one"
        AF_INET 1.1.1.1

_nss_resolve_gethostbyaddr2_r("1.0.0.1") → status=NSS_STATUS_SUCCESS
                   errno=999/--- h_errno=0/Resolver Error 0 (no error) ttl=0
        "one.one.one.one"
        AF_INET 1.0.0.1

_nss_resolve_gethostbyaddr_r("1.0.0.1") → status=NSS_STATUS_SUCCESS
                   errno=999/--- h_errno=0/Resolver Error 0 (no error)
        "one.one.one.one"
        AF_INET 1.0.0.1

_nss_resolve_gethostbyaddr2_r("10.38.5.41") → status=NSS_STATUS_SUCCESS
                   errno=999/--- h_errno=0/Resolver Error 0 (no error) ttl=0
        "squid.redhat.com"
        alias "squid.corp.redhat.com"
        alias "squid2.corp.redhat.com"
        alias "squid3.corp.redhat.com"
        alias "squid4.corp.redhat.com"
        alias "squid5.corp.redhat.com"
        AF_INET 10.38.5.41

_nss_resolve_gethostbyaddr_r("10.38.5.41") → status=NSS_STATUS_SUCCESS
                   errno=999/--- h_errno=0/Resolver Error 0 (no error)
        "squid.redhat.com"
        alias "squid.corp.redhat.com"
        alias "squid2.corp.redhat.com"
        alias "squid3.corp.redhat.com"
        alias "squid4.corp.redhat.com"
        alias "squid5.corp.redhat.com"
        AF_INET 10.38.5.41

(I have 10.38.5.41 squid.redhat.com squid.corp.redhat.com squid2.corp.redhat.com squid3.corp.redhat.com squid4.corp.redhat.com squid5.corp.redhat.com
in /etc/hosts for testing.)

4 years agoportabled: add --extension parameter for layered images support
Luca Boccassi [Tue, 23 Jun 2020 12:09:42 +0000 (13:09 +0100)] 
portabled: add --extension parameter for layered images support

Add an --extension parameter to portablectl, and new DBUS methods
to attach/detach/reattach/inspect.
Allows to append separate images on top of the root directory (os-release
will be searched in there) and mount the images using an overlay-like
setup (unit files will be searched in there) using the new ExtensionImages
service option.

4 years agogcrypt: do not ignore return values
Luca Boccassi [Sat, 27 Mar 2021 19:11:08 +0000 (19:11 +0000)] 
gcrypt: do not ignore return values

Check the return code from gcrypt's functions. In some
cases just log, as it shoulnd't really happen.

Fixes various Coverity issues:

CID #1444702
CID #1444704
CID #1444706
CID #1444711
CID #1444712
CID #1444713

4 years agorpm: when disabling a unit, do not complain if systemd is not running
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 16:09:13 +0000 (17:09 +0100)] 
rpm: when disabling a unit, do not complain if systemd is not running

$ sudo dnf remove --installroot=/var/tmp/img1 systemd-networkd
...
  Running scriptlet: systemd-networkd-248~rc4-4.fc32.x86_64      1/1
Removed /etc/systemd/system/multi-user.target.wants/systemd-networkd.service.
Removed /etc/systemd/system/sockets.target.wants/systemd-networkd.socket.
Removed /etc/systemd/system/dbus-org.freedesktop.network1.service.
Removed /etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service.
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

(Another option would be make --now do nothing if systemd is not running.
But I think that's not too good. 'disable --now' doing nothing would be OK,
since if systemd is not running, the service is not running either, so we are
in the desired state. But that argument doesn't work for 'enable --now'. And
accepting 'disable --now' but not 'enable --now' seems overly complex. So I
think it is better to make the scriptlet handle this case explicitly.)

Also, let's reindent the file to 4 spaces. Very deeply nested scriptlets are
harder to read, and the triggers file is indented to 4 spaces already.

4 years agoresolved.conf: Add hostnames for default DNS servers
Jan Janssen [Fri, 26 Mar 2021 15:37:33 +0000 (16:37 +0100)] 
resolved.conf: Add hostnames for default DNS servers

4 years agologind: Add new flag for kexec reboot
Deepak Rawat [Tue, 30 Mar 2021 03:22:16 +0000 (20:22 -0700)] 
logind: Add new flag for kexec reboot

Add new flag to allow kexec reboot if kernel is already loaded.

4 years agoMerge pull request #19109 from poettering/resolved-transaction-log-tweaks
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 08:47:12 +0000 (10:47 +0200)] 
Merge pull request #19109 from poettering/resolved-transaction-log-tweaks

resolved: minor tweaks to transaction logic and logging

4 years agoshared: add new IMAGE_VERSION=/IMAGE_ID= field to /etc/os-release
Lennart Poettering [Tue, 23 Mar 2021 15:10:31 +0000 (16:10 +0100)] 
shared: add new IMAGE_VERSION=/IMAGE_ID= field to /etc/os-release

This specifes two new optional fields for /etc/os-release:
IMAGE_VERSION= and IMAGE_ID= that are supposed to identify the image of
the current booted system by name and version.

This is inspired by the versioning stuff in
https://github.com/systemd/mkosi/pull/683.

In environments where pre-built images are installed and updated as a
whole the existing os-release version/distro identifier are not
sufficient to describe the system's version, as they describe only the
distro an image is built from, but not the image itself, even if that
image is deployed many times on many systems, and even if that image
contains more resources than just the RPMs/DEBs.

In particular, "mkosi" is a tool for building disk images based on
distro RPMs with additional resources dropped in. The combination of all
of these together with their versions should also carry an identifier
and version, and that's what IMAGE_VERSION= and IMAGE_ID= is supposed to
be.

4 years agoMerge pull request #19064 from yuwata/resolve-fix-cache-19049
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 08:42:21 +0000 (10:42 +0200)] 
Merge pull request #19064 from yuwata/resolve-fix-cache-19049

resolve: several trivial cleanups

4 years agoudevd: don't kill worker in manager_kill_workers when it's running
gaoyi [Fri, 19 Mar 2021 07:16:56 +0000 (15:16 +0800)] 
udevd: don't kill worker in manager_kill_workers when it's running

If worker is running, kill worker may lead uevent unprocessed.

4 years agoMerge pull request #18990 from yuwata/network-dhcpv6-use-domains
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 08:38:37 +0000 (10:38 +0200)] 
Merge pull request #18990 from yuwata/network-dhcpv6-use-domains

network: also introduce UseDomains= for [DHCPv6] section

4 years agoMerge pull request #19101 from poettering/mount-util-fixes
Lennart Poettering [Wed, 31 Mar 2021 08:37:49 +0000 (10:37 +0200)] 
Merge pull request #19101 from poettering/mount-util-fixes

Make recursive bind remounting handle failures gracefully

4 years agodissect: make the --image= switch of our various tools honour Verity data
Lennart Poettering [Tue, 23 Mar 2021 13:07:53 +0000 (14:07 +0100)] 
dissect: make the --image= switch of our various tools honour Verity data

This adds simple Verity support to
mount_image_privately_interactively(): we dicover the verity metadata
and use it.

4 years agoMerge pull request #18989 from yuwata/ordered-set-put-strdup
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 08:36:03 +0000 (10:36 +0200)] 
Merge pull request #18989 from yuwata/ordered-set-put-strdup

ordered-set: make ordered_set_put_strdup() allocate OrderedSet object

4 years agorepart: make sure CopyFiles= works with a / suffixed path
Lennart Poettering [Tue, 23 Mar 2021 13:05:56 +0000 (14:05 +0100)] 
repart: make sure CopyFiles= works with a / suffixed path

If we define a partition with CopyFiles=/efi/ this should just work.
However it previously didn't because basename() would return the
trailing slash.

Let's fix this by moving things to path_extract_{directory|filename}()

4 years agomachine-id-setup: support --image= mode
Lennart Poettering [Fri, 19 Mar 2021 17:34:06 +0000 (18:34 +0100)] 
machine-id-setup: support --image= mode

4 years agoMerge pull request #18971 from poettering/sysusers-creds
Lennart Poettering [Wed, 31 Mar 2021 08:35:17 +0000 (10:35 +0200)] 
Merge pull request #18971 from poettering/sysusers-creds

let's read LoadCredentials=/SetCredentials= style cred in sysusers/firstboot and when asking for passwords

4 years agoMerge pull request #18982 from keszybz/test-nss-users
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 08:32:09 +0000 (10:32 +0200)] 
Merge pull request #18982 from keszybz/test-nss-users

Add a new test for user/group resolution in nss modules

4 years agoMerge pull request #18958 from poettering/dissect-no-root
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 08:31:32 +0000 (10:31 +0200)] 
Merge pull request #18958 from poettering/dissect-no-root

dissect-image: support images without rootfs but with /usr partition + support simple partition versioning via strverscmp() on part label

4 years agocompress: support streaming lz4 without full input mmap
Luca Boccassi [Tue, 9 Mar 2021 14:57:44 +0000 (14:57 +0000)] 
compress: support streaming lz4 without full input mmap

The advantage of stream compression is keeping a low memory profile,
but the lz4 stream compressor usage mmaps the whole file in memory.

Change it to read bits by bits, like the other stream compression
helpers.

4 years agoMerge pull request #18886 from anitazha/shutdownconsole
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 08:28:26 +0000 (10:28 +0200)] 
Merge pull request #18886 from anitazha/shutdownconsole

logging shutdown to /dev/console

4 years agoMerge pull request #18850 from yuwata/sd-device-monitor-cleanups
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 08:27:06 +0000 (10:27 +0200)] 
Merge pull request #18850 from yuwata/sd-device-monitor-cleanups

sd-device-monitor: trivial cleanups

4 years agoIntroduce ExitType
Henri Chain [Wed, 24 Feb 2021 15:13:21 +0000 (16:13 +0100)] 
Introduce ExitType

4 years agoMerge pull request #18777 from yuwata/network-set-ifname-to-engines
Zbigniew Jędrzejewski-Szmek [Wed, 31 Mar 2021 08:25:23 +0000 (10:25 +0200)] 
Merge pull request #18777 from yuwata/network-set-ifname-to-engines

network: set ifname to dhcp4 client or friends

4 years agoMerge pull request #19157 from keszybz/read-medium-sized-virtual-file v248 v248-2
Lennart Poettering [Tue, 30 Mar 2021 20:59:02 +0000 (22:59 +0200)] 
Merge pull request #19157 from keszybz/read-medium-sized-virtual-file

basic/fileio: fix reading of not-too-small virtual files

4 years agoNEWS: prep release date
Lennart Poettering [Tue, 30 Mar 2021 20:00:11 +0000 (22:00 +0200)] 
NEWS: prep release date

4 years agotest-fileio: test for read_full_virtual_file() 19157/head
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 19:58:59 +0000 (21:58 +0200)] 
test-fileio: test for read_full_virtual_file()

It was already called through other places, but indirectly.
Let's add some direct invocations.

4 years agobasic/fileio: fix reading of not-too-small virtual files
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 15:29:44 +0000 (17:29 +0200)] 
basic/fileio: fix reading of not-too-small virtual files

This code is trying to do two things: when reading a file with working
st.st_size, detect when the file size changes between the fstat() and our
allocation of the buffer based on the returned size, and the subsequent read().
When reading a file without st.st_size, read up to READ_FULL_BYTES_MAX.

But this second scenario was partially broken: we'd start with size = 4095, and
double the size up to three times, i.e. up to 32767. But we want to read up to
READ_FULL_BYTES_MAX.

So let's listentangle the two cases a bit: if a file returns non-zero st._size,
proceed as before. But if we don't know the size, let's immediately allocate
the buffer of maximum size of READ_FULL_BYTES_MAX. I think that allocating 4MB
and 1MB is going to take pretty much the same time as long as the memory is not
written to, so by allocating 1MB, 2MB, and 4MB, we wouldn't really be saving
anything internally, but wasting time on repeated reads, if the file is long
enough.

Also, don't do the seek if we know we're going to return an error immediately
after.

This should fix reading of any files in /proc, which all have size == 0. In
particular, various files read by coredump might be larger than 32767.

What about /sys? The file there return a fake value, usually 4096. So we'll
allocate a small buffer and read that.

4 years agoMerge pull request #19149 from anitazha/oomdlogging
Luca Boccassi [Tue, 30 Mar 2021 18:01:01 +0000 (19:01 +0100)] 
Merge pull request #19149 from anitazha/oomdlogging

oomd: make it more clear when a kill happens

4 years agoMerge pull request #19155 from keszybz/hwdb-contrib-v248
Luca Boccassi [Tue, 30 Mar 2021 17:13:16 +0000 (18:13 +0100)] 
Merge pull request #19155 from keszybz/hwdb-contrib-v248

hwdb update + contrib list

4 years agooomd: fix iteration over candidates to kill 19149/head
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 12:45:22 +0000 (14:45 +0200)] 
oomd: fix iteration over candidates to kill

4 years agooomd: make it more clear when a kill happens
Anita Zhang [Fri, 26 Mar 2021 10:01:38 +0000 (03:01 -0700)] 
oomd: make it more clear when a kill happens

Improve the logging to only print if systemd-oomd killed something. And
also print which cgroup was targeted.
Demote general swap above/pressure above messages to debug.

[zjs: fix some issuelets found in review]

4 years agoMerge pull request #19131 from keszybz/resolvectl-warn-less
Lennart Poettering [Tue, 30 Mar 2021 11:29:55 +0000 (13:29 +0200)] 
Merge pull request #19131 from keszybz/resolvectl-warn-less

Suppress warnings in resolvectl about --type=

4 years agoselinux: do not crash if policy becomes unavailable after reload
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 08:01:12 +0000 (10:01 +0200)] 
selinux: do not crash if policy becomes unavailable after reload

https://bugzilla.redhat.com/show_bug.cgi?id=1944171
This was in F33, systemd-246.13, but the logic in the code didn't change.

Thread 1 (Thread 0x7fb5f0341b80 (LWP 1974)):
№0  selabel_lookup_common (rec=0x0, translating=0, key=0x55f616ac4750 "/run/user/1000/systemd/units/invocation:systemd-tmpfiles-clean.service", type=40960) at label.c:167

'rec' is the handle that we passed.

№1  0x00007fb5f13ae87f in selabel_lookup_raw (rec=<optimized out>, con=con@entry=0x7fffef307380, key=key@entry=0x55f616ac4750 "/run/user/1000/systemd/units/invocation:systemd-tmpfiles-clean.service", type=type@entry=40960) at label.c:256
        lr = <optimized out>

'rec' is passed through as is to selabel_lookup_common().

№2  0x00007fb5f1561b2d in selinux_create_file_prepare_abspath (abspath=0x55f616ac4750 "/run/user/1000/systemd/units/invocation:systemd-tmpfiles-clean.service", mode=40960) at ../src/basic/selinux-util.c:368
        filecon = 0x0
        r = <optimized out>
        __PRETTY_FUNCTION__ = "selinux_create_file_prepare_abspath"
        __func__ = "selinux_create_file_prepare_abspath"

№3  0x00007fb5f1561ec3 in mac_selinux_create_file_prepare (path=<optimized out>, mode=40960) at ../src/basic/selinux-util.c:431
        r = 0
        abspath = 0x55f616ac4750 "/run/user/1000/systemd/units/invocation:systemd-tmpfiles-clean.service"
        __PRETTY_FUNCTION__ = "mac_selinux_create_file_prepare"

We checked label_hnd != NULL, but then we apparently called
avc_netlink_check_nb(), which reset label_hnd. Yay for global state!

№4  0x00007fb5f1549950 in symlink_atomic_label (from=0x55f6169d8b50 "69a8dcf7a7ac46b29306f2fddbed3edc", to=0x55f616ab8380 "/run/user/1000/systemd/units/invocation:systemd-tmpfiles-clean.service") at ../src/basic/label.c:55
        r = <optimized out>
        __PRETTY_FUNCTION__ = "symlink_atomic_label"

In the logs:

Mar 29 14:48:44 fedorapad.home systemd[1974]: selinux: avc:  received policyload notice (seqno=2)
Mar 29 14:48:44 fedorapad.home systemd[1974]: Failed to initialize SELinux labeling handle: No such file or directory
Mar 29 14:48:44 fedorapad.home systemd[1974]: selinux: avc:  received policyload notice (seqno=3)
Mar 29 14:48:44 fedorapad.home systemd[1974]: selinux: avc:  received setenforce notice (enforcing=0)

4 years agohwdb: update fingerprint autosuspend rules 19155/head
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 11:17:42 +0000 (13:17 +0200)] 
hwdb: update fingerprint autosuspend rules

4 years agohwdb: update for v248
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 11:16:30 +0000 (13:16 +0200)] 
hwdb: update for v248

As usual, it seems to be additions and updates, no major removals.

4 years agoNEWS: update contributor list for v248 final
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 10:49:41 +0000 (12:49 +0200)] 
NEWS: update contributor list for v248 final

4 years agogit-contrib: use non-breaking spaces in names
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 10:45:14 +0000 (12:45 +0200)] 
git-contrib: use non-breaking spaces in names

Some people have initials or abbreviated parts in the name and looks strange
when a line break occurs in the middle. Let's keep each name in one line.

4 years agomailmap: two more names
Zbigniew Jędrzejewski-Szmek [Tue, 30 Mar 2021 10:43:23 +0000 (12:43 +0200)] 
mailmap: two more names

4 years agoRevert "fix wrong statement JOURNAL_FILE_FORMAT.md doc"
Luca Boccassi [Mon, 29 Mar 2021 21:31:21 +0000 (22:31 +0100)] 
Revert "fix wrong statement JOURNAL_FILE_FORMAT.md doc"

This reverts commit 119063d2b149667a91e0e08e4bdf82a0eb6a7efd.

4 years agofix wrong statement JOURNAL_FILE_FORMAT.md doc
Yangyang Shen [Mon, 29 Mar 2021 12:29:54 +0000 (20:29 +0800)] 
fix wrong statement JOURNAL_FILE_FORMAT.md doc

4 years agounits: make locale directory writable for systemd-localed
Christian Hesse [Sun, 28 Mar 2021 11:00:49 +0000 (13:00 +0200)] 
units: make locale directory writable for systemd-localed

With 8f20232fcb52dbe6255f3df6101fc057af90bcfa systemd-localed supports
generating locales when required. This fails if the locale directory is
read-only, so make it writable.

Closes #19138

4 years agosd-bus: set retain attribute on BUS_ERROR_MAP_ELF_REGISTER
Fangrui Song [Mon, 29 Mar 2021 06:35:06 +0000 (23:35 -0700)] 
sd-bus: set retain attribute on BUS_ERROR_MAP_ELF_REGISTER

LLD 13 and GNU ld 2.37 support -z start-stop-gc which allows garbage
collection of C identifier name sections despite the __start_/__stop_
references.  Simply set the retain attribute so that GCC 11 (if
configure-time binutils is 2.36 or newer)/Clang 13 will set the
SHF_GNU_RETAIN section attribute to prevent garbage collection.

Without the patch, there are linker errors like the following with -z
start-stop-gc.

```
ld: error: undefined symbol: __start_SYSTEMD_BUS_ERROR_MAP
>>> referenced by bus-error.c:93 (../src/libsystemd/sd-bus/bus-error.c:93)
>>>               sd-bus_bus-error.c.o:(bus_error_name_to_errno) in archive src/libsystemd/libsystemd_static.a
```

4 years agoMerge pull request #19116 from keszybz/readvirtualfile-opt
Zbigniew Jędrzejewski-Szmek [Mon, 29 Mar 2021 08:51:32 +0000 (10:51 +0200)] 
Merge pull request #19116 from keszybz/readvirtualfile-opt

Optimize read_full_virtual_file() and another coverity issue

4 years agoresolvectl: suppress warning about --type for names with a dot 19131/head
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 13:14:38 +0000 (14:14 +0100)] 
resolvectl: suppress warning about --type for names with a dot

People don't generally type the trailing dot by mistake, so let's treat this as
indication that they want to resolve this particular hostname.

4 years agoMerge pull request #19129 from keszybz/test-random-range
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 19:22:29 +0000 (20:22 +0100)] 
Merge pull request #19129 from keszybz/test-random-range

Test random_u64_range()

4 years agotest-dhcp6-client: add one more assert on memory mapping
Luca Boccassi [Fri, 26 Mar 2021 12:03:11 +0000 (12:03 +0000)] 
test-dhcp6-client: add one more assert on memory mapping

Same as 7489d0640a4864d4b47fd8fda77f8eb7cf2e3fe8, one more case
that was missed.

Coverity CID #1394277

4 years agoMerge pull request #19125 from keszybz/cat-config
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 19:16:09 +0000 (20:16 +0100)] 
Merge pull request #19125 from keszybz/cat-config

config files: recommend systemd-analyze cat-config

4 years agoresolved: tweak how we signal authoritative answers
Lennart Poettering [Wed, 24 Feb 2021 16:04:55 +0000 (17:04 +0100)] 
resolved: tweak how we signal authoritative answers

let's make sure we set the "aa" bit in the stub only if we answer with
fully authoritative data. For this ensure:

1. Either all data is synthetic, including all CNAME/DNAME redirects

2. Or all data comes from the local trust anchor or the local zones
   (i.e. not the network or the cache)

Follow-up for 4ad017cda57b04b9d65e7da962806cfcc50b5f0c

4 years agotests: drop calls to unsetenv SYSTEMD_MEMPOOL 19116/head
Zbigniew Jędrzejewski-Szmek [Thu, 25 Mar 2021 11:19:18 +0000 (12:19 +0100)] 
tests: drop calls to unsetenv SYSTEMD_MEMPOOL

Coverity was complaining that we don't check the return value, which we stopped
doing in 772e0a76f34914f6f81205e912e4744c6b23f704.

But it seems that we don't want those calls at all. The test was originally
added with the call in a6ee01caf3409ba9820e8824b9262fbac31a9f77, but I don't
see why we should override this. If the user wants to execute the test with
mempool disabled, we shouldn't ignore that.

Coverity CID#1444464, CID#1444466.

4 years agobasic/fileio: use malloc_usable_size() to use all allocated memory
Zbigniew Jędrzejewski-Szmek [Thu, 25 Mar 2021 12:50:13 +0000 (13:50 +0100)] 
basic/fileio: use malloc_usable_size() to use all allocated memory

4 years agobasic/fileio: optimize buffer sizes in read_full_virtual_file()
Zbigniew Jędrzejewski-Szmek [Thu, 25 Mar 2021 11:10:32 +0000 (12:10 +0100)] 
basic/fileio: optimize buffer sizes in read_full_virtual_file()

We'd proceed rather inefficiently: the initial buffer size was LINE_MAX/2,
i.e. only 1k. We can read 4k at the same cost.

Also, we'd try to allocate 1025, 2049, 4097 bytes, i.e. always one higher than
the power-of-two size. Effectively the allocation would be bigger, and we'd
waste the additional space. So let's allocate aligned to the power-of-two size.
size=4095, 8191, 16383, so we allocate 4k, 8k, 16k.

4 years agobasic/fileio: simplify calculation of buffer size in read_full_virtual_file()
Zbigniew Jędrzejewski-Szmek [Thu, 25 Mar 2021 10:58:35 +0000 (11:58 +0100)] 
basic/fileio: simplify calculation of buffer size in read_full_virtual_file()

We'd first assign a value up to SSIZE_MAX, and then immediately check if we
have a value bigger than READ_FULL_BYTES_MAX. This wasn't exactly wrong, but a
bit roundabout. Let's immediately assign the value from the appropriate range
or error out.

Coverity CID#1450973.

4 years agouse the right member to define property
David Tardon [Fri, 26 Mar 2021 11:34:28 +0000 (12:34 +0100)] 
use the right member to define property

4 years agotest-random-util: add stochastic test for random_u64_range() 19129/head
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 11:42:52 +0000 (12:42 +0100)] 
test-random-util: add stochastic test for random_u64_range()

4 years agotest-random-util: modernization
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 11:42:22 +0000 (12:42 +0100)] 
test-random-util: modernization

4 years agoresolvectl: do not warn about single hostnames for names we synthesize
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 13:09:28 +0000 (14:09 +0100)] 
resolvectl: do not warn about single hostnames for names we synthesize

https://github.com/systemd/systemd/pull/17535#discussion_r534005801

4 years agoresolved: split out function to determine the local llmnr hostname
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 13:08:03 +0000 (14:08 +0100)] 
resolved: split out function to determine the local llmnr hostname

4 years agoresolvectl: reword note about "raw record types"
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 12:25:04 +0000 (13:25 +0100)] 
resolvectl: reword note about "raw record types"

As noted in https://github.com/systemd/systemd/pull/17535#discussion_r534129256,
"raw" is misleading in this context. Let's use a more descriptive term.

4 years agobasic/log: fix log_trace()
Zbigniew Jędrzejewski-Szmek [Fri, 26 Mar 2021 12:07:55 +0000 (13:07 +0100)] 
basic/log: fix log_trace()

log_trace() was always on. It's supposed to be opt-in.

4 years agoupdate TODO 18971/head
Lennart Poettering [Thu, 11 Mar 2021 16:48:59 +0000 (17:48 +0100)] 
update TODO

4 years agoask-password: when querying for a password, try to read from credential store first
Lennart Poettering [Thu, 11 Mar 2021 19:17:10 +0000 (20:17 +0100)] 
ask-password: when querying for a password, try to read from credential store first

This adds generic support for the SetCredential=/LoadCredential= logic
to our password querying infrastructure: if a password is requested by a
program that has a credential store configured via
$CREDENTIALS_DIRECTORY we'll look in it for a password.

The "systemd-ask-password" tool is updated with an option to specify the
credential to look for.

4 years agoman: document in nspawn docs how to make use of the new firstboot/sysusers features
Lennart Poettering [Thu, 11 Mar 2021 16:49:18 +0000 (17:49 +0100)] 
man: document in nspawn docs how to make use of the new firstboot/sysusers features

4 years agofirstboot: allow provisioning of firstboot params via creds too
Lennart Poettering [Thu, 11 Mar 2021 10:47:57 +0000 (11:47 +0100)] 
firstboot: allow provisioning of firstboot params via creds too

4 years agofirstboot: slightly reorder variable declaration
Lennart Poettering [Thu, 11 Mar 2021 10:43:17 +0000 (11:43 +0100)] 
firstboot: slightly reorder variable declaration

Let's put the locale fields which we process together next to each
other.

4 years agounits: make sure to query console settings before we apply them
Lennart Poettering [Thu, 11 Mar 2021 10:47:15 +0000 (11:47 +0100)] 
units: make sure to query console settings before we apply them