]> git.ipfire.org Git - thirdparty/systemd.git/log
thirdparty/systemd.git
2 years agologinctl: use FORMAT_TIMESTAMP_RELATIVE_MONOTONIC 27786/head
Mike Yuan [Thu, 25 May 2023 10:35:08 +0000 (18:35 +0800)] 
loginctl: use FORMAT_TIMESTAMP_RELATIVE_MONOTONIC

Follow-up for #27769

Addresses https://github.com/systemd/systemd/pull/27769#discussion_r1205215743

2 years agologinctl: realign bus_properties_map
Mike Yuan [Thu, 25 May 2023 10:25:15 +0000 (18:25 +0800)] 
loginctl: realign bus_properties_map

2 years agosystemctl: list-units: use TABLE_TIMESTAMP_RELATIVE_MONOTONIC
Mike Yuan [Thu, 25 May 2023 10:23:17 +0000 (18:23 +0800)] 
systemctl: list-units: use TABLE_TIMESTAMP_RELATIVE_MONOTONIC

2 years agotime-util,format-table: add relative_monotonic variant for timestamp
Mike Yuan [Thu, 25 May 2023 09:47:57 +0000 (17:47 +0800)] 
time-util,format-table: add relative_monotonic variant for timestamp

2 years agotest: split the ASan wrapper into smaller blocks and tidy it up a bit
Frantisek Sumsal [Thu, 25 May 2023 13:31:48 +0000 (15:31 +0200)] 
test: split the ASan wrapper into smaller blocks and tidy it up a bit

No functional change (hopefully), just making it easier on the eyes.

2 years agounits: Shut down networkd and resolved on switch-root
Daan De Meyer [Thu, 25 May 2023 16:13:02 +0000 (18:13 +0200)] 
units: Shut down networkd and resolved on switch-root

Let's explicitly order these against initrd-switch-root.target, so
that they are properly shut down before we switch root. Otherwise,
there's a race condition where networkd might only shut down after
switching root and after we've already we've loaded the unit graph,
meaning it won't be restarted in the rootfs.

Fixes #27718

2 years agorules: add rule for accel devices
Stanislaw Gruszka [Thu, 25 May 2023 09:44:00 +0000 (11:44 +0200)] 
rules: add rule for accel devices

Accel (Compute Acceleration) are new devices for AI/ML computation:
https://docs.kernel.org/accel/introduction.html

They are part of DRM subsystem. Add them to 'render' group since
no other appropriate group in standard linux systems exist. This
can be changed when proper common user-space components will emerge,
and new group for acceleration devices access will be established.

Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
2 years agogpt-auto-generator: also honor systemd.swap=no
David Tardon [Thu, 25 May 2023 07:03:10 +0000 (09:03 +0200)] 
gpt-auto-generator: also honor systemd.swap=no

2 years agoman: add trailing =
David Tardon [Thu, 25 May 2023 06:44:21 +0000 (08:44 +0200)] 
man: add trailing =

2 years agomeson: Create credstore directories
Daan De Meyer [Wed, 24 May 2023 13:32:17 +0000 (15:32 +0200)] 
meson: Create credstore directories

Let's make the creds directories a bit more discoverable and make it
easier for users to use them. This also allows us to fix the
mode to 0700 for /etc instead of the usual 0755 which is what probably
would happen if users had to create this directory themselves.

2 years agoresolved-dns-rr: use automatic cleanup
David Tardon [Thu, 25 May 2023 08:30:06 +0000 (10:30 +0200)] 
resolved-dns-rr: use automatic cleanup

Follow-up for #27770.

2 years agoupdate TODO
Lennart Poettering [Thu, 25 May 2023 12:33:45 +0000 (14:33 +0200)] 
update TODO

2 years agoMerge pull request #27358 from bluca/pe_mule
Lennart Poettering [Thu, 25 May 2023 10:56:06 +0000 (03:56 -0700)] 
Merge pull request #27358 from bluca/pe_mule

stub: allow loading and verifying kernel command line addons

2 years agomount-util: Downgrade log message to trace
Daan De Meyer [Thu, 25 May 2023 07:48:24 +0000 (09:48 +0200)] 
mount-util: Downgrade log message to trace

This debug log message is extremely noisy so let's downgrade it to
trace.

2 years agomkosi: Bump default timeout to 180s
Daan De Meyer [Thu, 25 May 2023 08:00:59 +0000 (10:00 +0200)] 
mkosi: Bump default timeout to 180s

Hopefully fixes #27778 where waiting for the root device to appear
times out before systemd-repart has a chance to run and create it.

2 years agoMerge pull request #26959 from poettering/creds-mount-dep-fix
Lennart Poettering [Thu, 25 May 2023 09:06:47 +0000 (02:06 -0700)] 
Merge pull request #26959 from poettering/creds-mount-dep-fix

credential ramfs mount order fixes

2 years agoMerge pull request #27483 from yuwata/udev-id-path-usb-revision
Zbigniew Jędrzejewski-Szmek [Thu, 25 May 2023 08:24:45 +0000 (10:24 +0200)] 
Merge pull request #27483 from yuwata/udev-id-path-usb-revision

udev: include USB revision in ID_PATH

2 years agoMerge pull request #27770 from mrc0mmand/more-nallocfuzz-shenanigans
Yu Watanabe [Thu, 25 May 2023 08:15:37 +0000 (17:15 +0900)] 
Merge pull request #27770 from mrc0mmand/more-nallocfuzz-shenanigans

A couple of fixes for potential issues during OOM situations

2 years agoMerge pull request #27769 from YHNdnzj/loginctl-followup
Yu Watanabe [Wed, 24 May 2023 20:52:06 +0000 (05:52 +0900)] 
Merge pull request #27769 from YHNdnzj/loginctl-followup

loginctl: some follow-ups

2 years agoMerge pull request #27723 from YHNdnzj/service-restart-cleanup
Yu Watanabe [Wed, 24 May 2023 20:14:52 +0000 (05:14 +0900)] 
Merge pull request #27723 from YHNdnzj/service-restart-cleanup

core: get rid of unused Service.will_auto_restart logic

2 years agotree-wide: check memstream buffer after closing the handle 27770/head
Frantisek Sumsal [Wed, 24 May 2023 11:29:52 +0000 (13:29 +0200)] 
tree-wide: check memstream buffer after closing the handle

When closing the FILE handle attached to a memstream, it may attempt to
do a realloc() that may fail during OOM situations, in which case we are
left with the buffer pointer pointing to NULL and buffer size > 0. For
example:

```
    #include <errno.h>
    #include <stdio.h>
    #include <stdlib.h>

    void *realloc(void *ptr, size_t size) {
        return NULL;
    }

    int main(int argc, char *argv[])
    {
        FILE *f;
        char *buf;
        size_t sz = 0;

        f = open_memstream(&buf, &sz);
        if (!f)
            return -ENOMEM;

        fputs("Hello", f);

        fflush(f);
        printf("buf: 0x%lx, sz: %lu, errno: %d\n",
                    (unsigned long) buf, sz, errno);
        fclose(f);
        printf("buf: 0x%lx, sz: %lu, errno: %d\n",
                    (unsigned long) buf, sz, errno);

        return 0;
    }
```

```
$ gcc -o main main.c
$ ./main
buf: 0x74d4a0, sz: 5, errno: 0
buf: 0x0, sz: 5, errno: 0
```

This might do unexpected things if the underlying code expects a valid
pointer to the memstream buffer after closing the handle.

Found by Nallocfuzz.

2 years agosystem-update-generator: drop pointless goto
David Tardon [Tue, 16 May 2023 05:39:32 +0000 (07:39 +0200)] 
system-update-generator: drop pointless goto

2 years agoMerge pull request #27173 from yuwata/update-utmp
Yu Watanabe [Wed, 24 May 2023 19:00:58 +0000 (04:00 +0900)] 
Merge pull request #27173 from yuwata/update-utmp

update-utmp: do not fail when PID1 is reexecuting

2 years agoMerge pull request #27773 from dtardon/timestamp-cleanup
Yu Watanabe [Wed, 24 May 2023 18:27:15 +0000 (03:27 +0900)] 
Merge pull request #27773 from dtardon/timestamp-cleanup

Use *timestamp_is_set() at more places

2 years agoMerge pull request #27774 from dtardon/free-cleanup
Yu Watanabe [Wed, 24 May 2023 18:06:51 +0000 (03:06 +0900)] 
Merge pull request #27774 from dtardon/free-cleanup

Use free_and_*() more

2 years agologinctl: also show idle hint in session-status 27769/head
Mike Yuan [Tue, 23 May 2023 10:54:30 +0000 (18:54 +0800)] 
loginctl: also show idle hint in session-status

2 years agologinctl: list-users: use bus_map_all_properties
Mike Yuan [Tue, 23 May 2023 10:27:05 +0000 (18:27 +0800)] 
loginctl: list-users: use bus_map_all_properties

2 years agologinctl: list-sessions: fix timestamp for idle hint
Mike Yuan [Wed, 24 May 2023 17:20:45 +0000 (01:20 +0800)] 
loginctl: list-sessions: fix timestamp for idle hint

Follow-up for 556723e738b96a5c2b2d45a96b87b7b80e0c5664

TABLE_TIMESTAMP_RELATIVE takes a realtime timestamp.

2 years agologinctl: some modernizations
Mike Yuan [Wed, 24 May 2023 11:42:03 +0000 (19:42 +0800)] 
loginctl: some modernizations

2 years agoukify: fix handling signed kernel as file
Malte Poll [Wed, 24 May 2023 09:01:25 +0000 (11:01 +0200)] 
ukify: fix handling signed kernel as file

The .linux section would contain the path to the signed kernel (instead of the signed kernel itself), since the python type of the variable is used to determine how it is handled when adding the pe sections.

Co-authored-by: Otto Bittner <cobittner@posteo.net>
2 years agosd-journal: propagate errors from ordered_hashmap_*()
Frantisek Sumsal [Wed, 24 May 2023 12:17:25 +0000 (14:17 +0200)] 
sd-journal: propagate errors from ordered_hashmap_*()

Instead of masking them with -ENOMEM.

2 years agotimer: use dual_timestamp_is_set() at one more place 27773/head
David Tardon [Wed, 24 May 2023 13:29:30 +0000 (15:29 +0200)] 
timer: use dual_timestamp_is_set() at one more place

2 years agotree-wide: use timestamp_is_set() at more places
David Tardon [Wed, 24 May 2023 13:26:32 +0000 (15:26 +0200)] 
tree-wide: use timestamp_is_set() at more places

2 years agoTODO: remove fixed item 27358/head
Luca Boccassi [Wed, 24 May 2023 10:18:18 +0000 (11:18 +0100)] 
TODO: remove fixed item

2 years agostub: allow loading and verifying cmdline addons
Luca Boccassi [Thu, 11 May 2023 23:55:58 +0000 (00:55 +0100)] 
stub: allow loading and verifying cmdline addons

Files placed in /EFI/Linux/UKI.efi.extra.d/ and /loader/addons/ are
opened and verified using the LoadImage protocol, and will thus get
verified via shim/firmware.
If they are valid signed PE files, the .cmdline section will be
extracted and appended. If there are multiple addons in each directory,
they will be parsed in alphanumerical order.

Optionally the .uname sections are also matched if present, so
that they can be used to filter out addons as well if needed, and only
addons that correspond exactly to the UKI being loaded are used.
It is recommended to also always add a .sbat section to addons, so
that they can be mass-revoked with just a policy update.

The files must have a .addon.efi suffix.

Files in the per-UKI directory are parsed, sorted, measured and
appended first. Then, files in the generic directory are processed.

2 years agocore: drop UnitNotifyFlags 27723/head
Mike Yuan [Mon, 22 May 2023 00:35:53 +0000 (08:35 +0800)] 
core: drop UnitNotifyFlags

This essentially reverts 2ad2e41a72ec19159c0746a78e15ff880fe32a63.

No longer needed after dropping UNIT_NOTIFY_WILL_AUTO_RESTART.

2 years agocore: get rid of unused Service.will_auto_restart logic
Mike Yuan [Mon, 22 May 2023 00:30:30 +0000 (08:30 +0800)] 
core: get rid of unused Service.will_auto_restart logic

The announced new behavior for OnFailure= never worked properly,
and we've fixed the document instead in #27675.
Therefore, let's get rid of the unused logic completely. More at #27594.

The to-be-added RestartMode= option should cover the use case hopefully.

Closes #27594

2 years agojournal-upload: use mfree() 27774/head
David Tardon [Wed, 24 May 2023 12:27:27 +0000 (14:27 +0200)] 
journal-upload: use mfree()

2 years agotree-wide: use free_and_str*dup() more
David Tardon [Wed, 24 May 2023 12:47:36 +0000 (14:47 +0200)] 
tree-wide: use free_and_str*dup() more

2 years agotree-wide: use free_and_replace() more
David Tardon [Wed, 24 May 2023 12:21:04 +0000 (14:21 +0200)] 
tree-wide: use free_and_replace() more

2 years agoMerge pull request #27752 from DaanDeMeyer/timer-oncalendar-fix
Daan De Meyer [Wed, 24 May 2023 12:39:32 +0000 (14:39 +0200)] 
Merge pull request #27752 from DaanDeMeyer/timer-oncalendar-fix

core/timer: Always use inactive_exit_timestamp if it is set

2 years agoenv-file: use free_and_replace()
Frantisek Sumsal [Wed, 24 May 2023 09:41:30 +0000 (11:41 +0200)] 
env-file: use free_and_replace()

2 years agospecifier: avoid leaking memory on allocation error
Frantisek Sumsal [Wed, 24 May 2023 09:39:24 +0000 (11:39 +0200)] 
specifier: avoid leaking memory on allocation error

==8036==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x4a10bc in __interceptor_realloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:85:3
    #1 0x4deef1 in realloc (/build/fuzz-unit-file+0x4deef1)
    #2 0x7ffa35abfe23 in greedy_realloc /work/build/../../src/systemd/src/basic/alloc-util.c:70:13
    #3 0x7ffa35aefad2 in parse_env_file_internal /work/build/../../src/systemd/src/basic/env-file.c:127:38
    #4 0x7ffa35af08a6 in parse_env_file_fdv /work/build/../../src/systemd/src/basic/env-file.c:374:13
    #5 0x7ffa35b6391e in parse_extension_release_atv /work/build/../../src/systemd/src/basic/os-util.c:323:16
    #6 0x7ffa35b63c8a in parse_extension_release_sentinel /work/build/../../src/systemd/src/basic/os-util.c:360:13
    #7 0x7ffa35a5e3f5 in parse_os_release_specifier /work/build/../../src/systemd/src/shared/specifier.c:292:13
    #8 0x7ffa35a5e3f5 in specifier_os_id /work/build/../../src/systemd/src/shared/specifier.c:303:16
    #9 0x7ffa35a5c7f5 in specifier_printf /work/build/../../src/systemd/src/shared/specifier.c:70:45
    #10 0x7ffa3690b279 in unit_full_printf_full /work/build/../../src/systemd/src/core/unit-printf.c:264:16
    #11 0x7ffa367de795 in config_parse_bus_name /work/build/../../src/systemd/src/core/load-fragment.c:2401:13
    #12 0x7ffa358fe5ec in next_assignment /work/build/../../src/systemd/src/shared/conf-parser.c:151:24
    #13 0x7ffa358fe5ec in parse_line /work/build/../../src/systemd/src/shared/conf-parser.c:257:16
    #14 0x7ffa358fd653 in config_parse /work/build/../../src/systemd/src/shared/conf-parser.c:400:21
    #15 0x4de828 in LLVMFuzzerTestOneInput /work/build/../../src/systemd/src/core/fuzz-unit-file.c:72:16
    #16 0x4df208 in NaloFuzzerTestOneInput (/build/fuzz-unit-file+0x4df208)
    #17 0x4fe213 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
    #18 0x4fd9fa in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
    #19 0x4ff0c9 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:757:19
    #20 0x4ffd95 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:895:5
    #21 0x4ef0ff in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
    #22 0x4ef9c8 in LLVMFuzzerRunDriver /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:925:10
    #23 0x4df485 in main (/build/fuzz-unit-file+0x4df485)
    #24 0x7ffa35232082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 1878e6b475720c7c51969e69ab2d276fae6d1dee)

DEDUP_TOKEN: __interceptor_realloc--realloc--greedy_realloc
SUMMARY: AddressSanitizer: 64 byte(s) leaked in 1 allocation(s).

Found by Nallocfuzz.

2 years agoresolve: avoid memory leak from a partially processed RR
Frantisek Sumsal [Tue, 23 May 2023 19:34:48 +0000 (21:34 +0200)] 
resolve: avoid memory leak from a partially processed RR

==5==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 4096 byte(s) in 1 object(s) allocated from:
    #0 0x4a2056 in __interceptor_malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:69:3
    #1 0x5180a9 in malloc (/build/fuzz-resource-record+0x5180a9)
    #2 0x4f7182 in dns_packet_extend /work/build/../../src/systemd/src/resolve/resolved-dns-packet.c:371:36
    #3 0x4f8b8b in dns_packet_append_uint8 /work/build/../../src/systemd/src/resolve/resolved-dns-packet.c:433:13
    #4 0x4f8b8b in dns_packet_append_name /work/build/../../src/systemd/src/resolve/resolved-dns-packet.c:597:13
    #5 0x4f8f16 in dns_packet_append_key /work/build/../../src/systemd/src/resolve/resolved-dns-packet.c:622:13
    #6 0x4fa9a0 in dns_packet_append_rr /work/build/../../src/systemd/src/resolve/resolved-dns-packet.c:883:13
    #7 0x4eb00c in dns_resource_record_to_wire_format /work/build/../../src/systemd/src/resolve/resolved-dns-rr.c:1224:13
    #8 0x4df7be in LLVMFuzzerTestOneInput /work/build/../../src/systemd/src/resolve/fuzz-resource-record.c:32:16
    #9 0x518428 in NaloFuzzerTestOneInput (/build/fuzz-resource-record+0x518428)
    #10 0x537433 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
    #11 0x536c1a in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
    #12 0x5382e9 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:757:19
    #13 0x538fb5 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:895:5
    #14 0x52831f in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
    #15 0x528be8 in LLVMFuzzerRunDriver /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:925:10
    #16 0x5186a5 in main (/build/fuzz-resource-record+0x5186a5)
    #17 0x7f991fab8082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 1878e6b475720c7c51969e69ab2d276fae6d1dee)

DEDUP_TOKEN: __interceptor_malloc--malloc--dns_packet_extend
SUMMARY: AddressSanitizer: 4096 byte(s) leaked in 1 allocation(s).

Found by Nallocfuzz.

2 years agosd-journal: use TAKE_PTR() a bit more
Frantisek Sumsal [Tue, 23 May 2023 17:21:20 +0000 (19:21 +0200)] 
sd-journal: use TAKE_PTR() a bit more

2 years agosd-journal: avoid double-free
Frantisek Sumsal [Tue, 23 May 2023 16:09:23 +0000 (18:09 +0200)] 
sd-journal: avoid double-free

If we fail to combine the new entry with a previous one, or update it in
the hashmap, we might later on attempt a double-free:

=================================================================
==10==ERROR: AddressSanitizer: attempting double-free on 0x611000039fc0 in thread T0:
SCARINESS: 42 (double-free)
    #0 0x4a0962 in __interceptor_free /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:52:3
    #1 0x7f55e431d9f2 in _hashmap_clear /work/build/../../src/systemd/src/basic/hashmap.c:927:33
    #2 0x7f55e431d4c8 in _hashmap_free /work/build/../../src/systemd/src/basic/hashmap.c:896:17
    #3 0x4de1de in ordered_hashmap_free_free_free /work/build/../../src/systemd/src/basic/hashmap.h:120:24
    #4 0x4de1de in ordered_hashmap_free_free_freep /work/build/../../src/systemd/src/basic/hashmap.h:434:1
    #5 0x4de1de in LLVMFuzzerTestOneInput /work/build/../../src/systemd/src/fuzz/fuzz-catalog.c:26:1
    #6 0x4de8b8 in NaloFuzzerTestOneInput (/build/fuzz-catalog+0x4de8b8)
    #7 0x4fd8c3 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
    #8 0x4fd0aa in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
    #9 0x4fe779 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:757:19
    #10 0x4ff445 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:895:5
    #11 0x4ee7af in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
    #12 0x4ef078 in LLVMFuzzerRunDriver /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:925:10
    #13 0x4deb35 in main (/build/fuzz-catalog+0x4deb35)
    #14 0x7f55e3a32082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 1878e6b475720c7c51969e69ab2d276fae6d1dee)
    #15 0x41f7cd in _start (/build/fuzz-catalog+0x41f7cd)

DEDUP_TOKEN: __interceptor_free--_hashmap_clear--_hashmap_free
0x611000039fc0 is located 0 bytes inside of 224-byte region [0x611000039fc0,0x61100003a0a0)
freed by thread T0 here:
    #0 0x4a0962 in __interceptor_free /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:52:3
    #1 0x7f55e451493d in freep /work/build/../../src/systemd/src/basic/alloc-util.h:107:22
    #2 0x7f55e451493d in finish_item /work/build/../../src/systemd/src/libsystemd/sd-journal/catalog.c:187:1
    #3 0x7f55e4513e56 in catalog_import_file /work/build/../../src/systemd/src/libsystemd/sd-journal/catalog.c:313:45
    #4 0x4de1be in LLVMFuzzerTestOneInput /work/build/../../src/systemd/src/fuzz/fuzz-catalog.c:23:16
    #5 0x4de8b8 in NaloFuzzerTestOneInput (/build/fuzz-catalog+0x4de8b8)
    #6 0x4fd8c3 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
    #7 0x4fd0aa in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
    #8 0x4fe779 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:757:19
    #9 0x4ff445 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:895:5
    #10 0x4ee7af in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
    #11 0x4ef078 in LLVMFuzzerRunDriver /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:925:10
    #12 0x4deb35 in main (/build/fuzz-catalog+0x4deb35)
    #13 0x7f55e3a32082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 1878e6b475720c7c51969e69ab2d276fae6d1dee)

DEDUP_TOKEN: __interceptor_free--freep--finish_item
previously allocated by thread T0 here:
    #0 0x4a0c06 in __interceptor_malloc /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:69:3
    #1 0x4de539 in malloc (/build/fuzz-catalog+0x4de539)
    #2 0x7f55e42bf96b in memdup /work/build/../../src/systemd/src/basic/alloc-util.c:16:15
    #3 0x7f55e451475d in finish_item /work/build/../../src/systemd/src/libsystemd/sd-journal/catalog.c:176:28
    #4 0x7f55e4513e56 in catalog_import_file /work/build/../../src/systemd/src/libsystemd/sd-journal/catalog.c:313:45
    #5 0x4de1be in LLVMFuzzerTestOneInput /work/build/../../src/systemd/src/fuzz/fuzz-catalog.c:23:16
    #6 0x4de8b8 in NaloFuzzerTestOneInput (/build/fuzz-catalog+0x4de8b8)
    #7 0x4fd8c3 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
    #8 0x4fd0aa in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:514:3
    #9 0x4fe779 in fuzzer::Fuzzer::MutateAndTestOne() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:757:19
    #10 0x4ff445 in fuzzer::Fuzzer::Loop(std::__Fuzzer::vector<fuzzer::SizedFile, std::__Fuzzer::allocator<fuzzer::SizedFile> >&) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:895:5
    #11 0x4ee7af in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:912:6
    #12 0x4ef078 in LLVMFuzzerRunDriver /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:925:10
    #13 0x4deb35 in main (/build/fuzz-catalog+0x4deb35)
    #14 0x7f55e3a32082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082) (BuildId: 1878e6b475720c7c51969e69ab2d276fae6d1dee)

DEDUP_TOKEN: __interceptor_malloc--malloc--memdup
SUMMARY: AddressSanitizer: double-free /src/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:52:3 in __interceptor_free

Found by Nallocfuzz.

2 years agotest: add test case for systemd-update-utmp vs daemon-reexec 27173/head
Yu Watanabe [Wed, 26 Apr 2023 14:56:50 +0000 (23:56 +0900)] 
test: add test case for systemd-update-utmp vs daemon-reexec

2 years agotest: drop a workaround
Yu Watanabe [Fri, 7 Apr 2023 01:05:40 +0000 (10:05 +0900)] 
test: drop a workaround

Follow-up for 61961e693d3ba71386068947d85078c086e455e4.

2 years agoupdate-utmp: reconnect after sleep when PID1 is reexecuting
Yu Watanabe [Thu, 6 Apr 2023 19:49:07 +0000 (04:49 +0900)] 
update-utmp: reconnect after sleep when PID1 is reexecuting

Fixes #27167.

2 years agoupdate-utmp: update log message
Yu Watanabe [Fri, 7 Apr 2023 09:44:22 +0000 (18:44 +0900)] 
update-utmp: update log message

2 years agoupdate-utmp: downgrade log level of ignored failure
Yu Watanabe [Thu, 6 Apr 2023 19:34:54 +0000 (04:34 +0900)] 
update-utmp: downgrade log level of ignored failure

2 years agoupdate-utmp: swap q <-> r
Yu Watanabe [Thu, 6 Apr 2023 19:31:21 +0000 (04:31 +0900)] 
update-utmp: swap q <-> r

We usually use 'r' for general purpose.

No functional change, just refactoring.

2 years agoupdate-utmp: modernize get_startup_monotonic_time()
Yu Watanabe [Thu, 6 Apr 2023 19:26:19 +0000 (04:26 +0900)] 
update-utmp: modernize get_startup_monotonic_time()

This also downgrade error level, as the failure will be ignored.

No functional change, just refactoring.

2 years agoupdate-utmp: rebreak comments
Yu Watanabe [Thu, 6 Apr 2023 19:13:57 +0000 (04:13 +0900)] 
update-utmp: rebreak comments

2 years agoupdate-utmp: use verbs
Yu Watanabe [Thu, 6 Apr 2023 19:07:17 +0000 (04:07 +0900)] 
update-utmp: use verbs

No functional change, just refactoring.

2 years agoMerge pull request #27740 from dtardon/list-sessions-idle
Yu Watanabe [Wed, 24 May 2023 11:03:39 +0000 (20:03 +0900)] 
Merge pull request #27740 from dtardon/list-sessions-idle

Show idle status in `loginctl list-sessions`

2 years agoMerge pull request #27757 from dtardon/bus-locator
Yu Watanabe [Wed, 24 May 2023 11:02:57 +0000 (20:02 +0900)] 
Merge pull request #27757 from dtardon/bus-locator

Convert more DBus calls to BusLocator

2 years agoukify: add default .sbat section for addons
Luca Boccassi [Sun, 21 May 2023 13:32:39 +0000 (14:32 +0100)] 
ukify: add default .sbat section for addons

In order to ensure addons can always be revoked via SBAT, and it is not
left out by mistake, have a default metadata entry if none is specified
by the caller.
https://github.com/rhboot/shim/blob/main/SBAT.md

2 years agoukify: use empty stub for addons
Luca Boccassi [Tue, 23 May 2023 00:45:40 +0000 (01:45 +0100)] 
ukify: use empty stub for addons

Instead of picking up sd-stub, which is runnable, add an empty
addon stub that just returns an error if executed

2 years agoelf2efi: ensure minimum gap between .text and other sections
Luca Boccassi [Tue, 23 May 2023 01:12:12 +0000 (02:12 +0100)] 
elf2efi: ensure minimum gap between .text and other sections

When linking an almost empty binary the linker can merged .text with
a later section, creating a RWE segment, that then it rejects.

2 years agoelf2efi: add parameter to increase reserved space for headers
Luca Boccassi [Tue, 23 May 2023 00:43:59 +0000 (01:43 +0100)] 
elf2efi: add parameter to increase reserved space for headers

When building a minimal empty addon it would not have enough
space to append sections. Add an option that will later be
used to reserve enough space.

2 years agostub/measure: document and measure .uname UKI section
Luca Boccassi [Sun, 21 May 2023 13:32:09 +0000 (14:32 +0100)] 
stub/measure: document and measure .uname UKI section

2 years agotimer: Use dual_timestamp_is_set() in one more place 27752/head
Daan De Meyer [Wed, 24 May 2023 09:41:37 +0000 (11:41 +0200)] 
timer: Use dual_timestamp_is_set() in one more place

2 years agoefi: set EFIVAR to stop Shim from uninstalling its protocol
Luca Boccassi [Thu, 11 May 2023 23:51:19 +0000 (00:51 +0100)] 
efi: set EFIVAR to stop Shim from uninstalling its protocol

We'll use it from the stub to validate files. Requires Shim 5.18.
By default, Shim uninstalls its protocol when calling StartImage(),
so when loading systemd-boot via shim and then loading an UKI, the
UKI's sd-stub will no longer be able to use the shim verification
protocol by default.

2 years agoMerge pull request #27761 from yuwata/network-vlan-qos-mapping
Luca Boccassi [Wed, 24 May 2023 08:59:41 +0000 (09:59 +0100)] 
Merge pull request #27761 from yuwata/network-vlan-qos-mapping

network: fix vlan qos mapping

2 years agoexecute: add missing NULL handling 26959/head
Lennart Poettering [Wed, 3 May 2023 19:54:29 +0000 (21:54 +0200)] 
execute: add missing NULL handling

2 years agomount: check right before invoking /bin/umount if it makes sense
Lennart Poettering [Thu, 23 Mar 2023 18:05:30 +0000 (19:05 +0100)] 
mount: check right before invoking /bin/umount if it makes sense

Notifications from /proc/self/mountinfo are async, so if we stop a
service (and while doing so get rid of the credentials mount point of
it), then it will take a while until the notification reaches us and we
actually scan the table again. In particular as we nowadays ratelimit
notifications on the table, since it's so inefficient. And as I learnt
the ratelimiting is actually quite regularly hit during shutdown, where
a flurry of umount events are genreated. Hence, let's check if a mount
point is actually a mountpoint before trying to unmount it. And if it
isn't let's wait for the notification to come in.

(This race might be triggred not just by us on ourselves btw: there are
other daemons that unmount stuff when stopping where the race also
exists, but might simply be harder to trigger: if during service
shutdown these services remove some mount then they might collide with
us doing the same. After all, we have the rule to unmount everything
mounted automatically for you during shutdown.)

In the long run we should also start making us of this when it becomes
available: https://github.com/util-linux/util-linux/issues/2132 With
that we can make issues like this go away entirely from our side of
things at least.

Fixes: #25527
2 years agosd-event: add an explicit API for leaving the ratelimit state
Lennart Poettering [Thu, 23 Mar 2023 22:16:43 +0000 (23:16 +0100)] 
sd-event: add an explicit API for leaving the ratelimit state

Sometimes, it might make sense to end the ratelimit window early.

2 years agocore: split out default network dep generation into own function
Lennart Poettering [Thu, 23 Mar 2023 13:03:47 +0000 (14:03 +0100)] 
core: split out default network dep generation into own function

Just some simple refactoring: let's split out network dep generation
into its own function mount_add_default_network_dependencies().

This way mount_add_default_dependencies() only does preparatory stuff,
and then calls both mount_add_default_network_dependencies() and
mount_add_default_ordering_dependencies() with that, making things
nicely symmetric.

2 years agocore: suppress various defaults deps for credentials mounts
Lennart Poettering [Thu, 23 Mar 2023 12:59:45 +0000 (13:59 +0100)] 
core: suppress various defaults deps for credentials mounts

The per-unit credentials mounts might show up for any kind of service,
including very very early ones. Hence let's not order them after
local-fs-pre.target, because otherwise we might trigger cyclic deps of
services that want to plug before that but still use credentials.

2 years agounit: add ordering dep relative to credentials dir
Lennart Poettering [Thu, 23 Mar 2023 11:35:38 +0000 (12:35 +0100)] 
unit: add ordering dep relative to credentials dir

See: #25527

2 years agocore/timer: Always use inactive_exit_timestamp if it is set
Daan De Meyer [Tue, 23 May 2023 14:24:47 +0000 (16:24 +0200)] 
core/timer: Always use inactive_exit_timestamp if it is set

If we're doing a daemon-reload, we'll be going from TIMER_DEAD => TIMER_WAITING,
so we won't use inactive_exit_timestamp because TIMER_DEAD != UNIT_ACTIVE, even
though inactive_exit_timestamp is serialized/deserialized and will be valid after
the daemon-reload.

This issue can lead to timers never firing as we'll always calculate the next
elapse based on the current realtime on daemon-reload, so if daemon-reload happens
often enough, the elapse interval will be moved into the future every time, which
means the timer will never trigger.

To fix the issue, let's always use inactive_exit_timestamp if it is set, and only
fall back to the current realtime if it is not set.

2 years agologinctl: show session idle status in list-sessions 27740/head
David Tardon [Fri, 19 May 2023 12:03:09 +0000 (14:03 +0200)] 
loginctl: show session idle status in list-sessions

2 years agotest: rotate journal before storing coredumps
Yu Watanabe [Wed, 24 May 2023 01:31:41 +0000 (10:31 +0900)] 
test: rotate journal before storing coredumps

Hopefully fixes the failure like
https://jenkins-systemd.apps.ocp.cloud.ci.centos.org/job/upstream-vagrant-archlinux-sanitizers/2558/
---
[   66.708894] testsuite-74.sh[728]: + coredumpctl --json=off
[   66.709344] testsuite-74.sh[826]: TIME                        PID UID GID SIG     COREFILE EXE             SIZE
[   66.709773] testsuite-74.sh[826]: Tue 2023-05-23 22:10:17 UTC 739   0   0 SIGTRAP journal  /tmp/test-dump     -
[   66.711134] testsuite-74.sh[826]: Tue 2023-05-23 22:10:18 UTC 747   0   0 SIGABRT journal  /tmp/test-dump     -
[   66.711789] testsuite-74.sh[826]: Tue 2023-05-23 22:10:19 UTC 763   0   0 SIGTRAP present  /tmp/test-dump 53.5K
[   66.712460] testsuite-74.sh[826]: Tue 2023-05-23 22:10:20 UTC 776   0   0 SIGABRT present  /tmp/test-dump 53.3K
[   66.713505] testsuite-74.sh[728]: + coredumpctl --root=/
[   66.714144] testsuite-74.sh[828]: TIME                        PID UID GID SIG     COREFILE EXE             SIZE
[   66.714535] testsuite-74.sh[828]: Tue 2023-05-23 22:10:17 UTC 739   0   0 SIGTRAP journal  /tmp/test-dump     -
[   66.715208] testsuite-74.sh[828]: Tue 2023-05-23 22:10:18 UTC 747   0   0 SIGABRT journal  /tmp/test-dump     -
[   66.715907] testsuite-74.sh[828]: Tue 2023-05-23 22:10:19 UTC 763   0   0 SIGTRAP present  /tmp/test-dump 53.5K
[   66.716565] testsuite-74.sh[828]: Tue 2023-05-23 22:10:20 UTC 776   0   0 SIGABRT present  /tmp/test-dump 53.3K
[   66.717494] testsuite-74.sh[728]: + coredumpctl --directory=/var/log/journal
[   66.718188] testsuite-74.sh[830]: TIME                        PID UID GID SIG     COREFILE EXE             SIZE
[   66.882072] testsuite-74.sh[830]: Tue 2023-05-23 22:10:17 UTC 739   0   0 SIGTRAP journal  /tmp/test-dump     -
[   66.882642] testsuite-74.sh[830]: Tue 2023-05-23 22:10:18 UTC 747   0   0 SIGABRT journal  /tmp/test-dump     -
[   66.883450] testsuite-74.sh[830]: Tue 2023-05-23 22:10:19 UTC 763   0   0 SIGTRAP present  /tmp/test-dump 53.5K
[   66.883944] testsuite-74.sh[830]: Tue 2023-05-23 22:10:20 UTC 776   0   0 SIGABRT present  /tmp/test-dump 53.3K
[   66.885448] testsuite-74.sh[728]: + coredumpctl --file=/var/log/journal/2e1ed84be19a4e22adfc99ad849be1f6/system.journal
[   66.885989] testsuite-74.sh[728]: + at_exit
[   66.894162] coredumpctl[833]: No coredumps found.
---

2 years agooomctl: convert a oom1.Manager call to BusLocator 27757/head
David Tardon [Wed, 24 May 2023 06:40:51 +0000 (08:40 +0200)] 
oomctl: convert a oom1.Manager call to BusLocator

2 years agobus-locator: sort the list
David Tardon [Wed, 24 May 2023 06:47:25 +0000 (08:47 +0200)] 
bus-locator: sort the list

2 years agobus-locator: declare bus locator for oom1 and timesync1
David Tardon [Wed, 24 May 2023 06:38:53 +0000 (08:38 +0200)] 
bus-locator: declare bus locator for oom1 and timesync1

2 years agohostnamectl: convert more hostname1 calls to BusLocator
David Tardon [Tue, 23 May 2023 18:40:47 +0000 (20:40 +0200)] 
hostnamectl: convert more hostname1 calls to BusLocator

2 years agotree-wide: convert more resolve1.Manager calls to BusLocator
David Tardon [Tue, 23 May 2023 18:37:27 +0000 (20:37 +0200)] 
tree-wide: convert more resolve1.Manager calls to BusLocator

2 years agojournalctl: convert a machine1.Manager call to BusLocator
David Tardon [Tue, 23 May 2023 18:33:16 +0000 (20:33 +0200)] 
journalctl: convert a machine1.Manager call to BusLocator

2 years agosleep: convert a home1.Manager call to BusLocator
David Tardon [Tue, 23 May 2023 18:28:55 +0000 (20:28 +0200)] 
sleep: convert a home1.Manager call to BusLocator

2 years agologin: use NULL to denote arg-less method call
David Tardon [Wed, 24 May 2023 06:29:22 +0000 (08:29 +0200)] 
login: use NULL to denote arg-less method call

"" and NULL are equivalent, but the latter is normally used.

2 years agotree-wide: convert more login1.Manager calls to BusLocator
David Tardon [Tue, 23 May 2023 18:23:17 +0000 (20:23 +0200)] 
tree-wide: convert more login1.Manager calls to BusLocator

2 years agotree-wide: convert more system1.Manager calls to BusLocator
David Tardon [Tue, 23 May 2023 18:09:37 +0000 (20:09 +0200)] 
tree-wide: convert more system1.Manager calls to BusLocator

2 years agotest-network: add tests for vlan QoS mapping 27761/head
Yu Watanabe [Wed, 24 May 2023 02:15:44 +0000 (11:15 +0900)] 
test-network: add tests for vlan QoS mapping

2 years agonetwork/vlan: paranoia about type safety
Yu Watanabe [Wed, 24 May 2023 02:06:35 +0000 (11:06 +0900)] 
network/vlan: paranoia about type safety

No functional change, as the struct is defined as the following:
```
struct ifla_vlan_qos_mapping {
      __u32 from;
      __u32 to;
};
```

2 years agonetwork/vlan: drop unnecessary restriction for QoS mapping
Yu Watanabe [Wed, 24 May 2023 02:02:36 +0000 (11:02 +0900)] 
network/vlan: drop unnecessary restriction for QoS mapping

Fixes #27460.

2 years agocore/slice: shorten code a bit
Yu Watanabe [Tue, 23 May 2023 21:24:11 +0000 (06:24 +0900)] 
core/slice: shorten code a bit

2 years agoefi: support passing empty cmdline to mangle_stub_cmdline()
Luca Boccassi [Thu, 11 May 2023 23:49:57 +0000 (00:49 +0100)] 
efi: support passing empty cmdline to mangle_stub_cmdline()

Just return instead of crashing

2 years agoefi: move get_dropin_dir to util.c
Luca Boccassi [Thu, 11 May 2023 23:49:25 +0000 (00:49 +0100)] 
efi: move get_dropin_dir to util.c

Will be used elsewhere in a later commit. Rename to clarify that it
provides .extra.d/ directories.

2 years agostub: measure SMBIOS kernel-cmdline-extra in PCR12
Luca Boccassi [Sun, 21 May 2023 14:18:21 +0000 (15:18 +0100)] 
stub: measure SMBIOS kernel-cmdline-extra in PCR12

PCR1, where SMBIOS strings are measured, is filled with data that is not
under the control of the machine owner. Measure cmdline extensions in
PCR12 too, where we measure other optional addons that are loaded by
sd-stub.

2 years agoelf2efi: Do not emit an empty relocation section
Jan Janssen [Tue, 23 May 2023 17:00:52 +0000 (19:00 +0200)] 
elf2efi: Do not emit an empty relocation section

At least shim will choke on an empty relocation section when loading the
binary. Note that the binary is still considered relocatable (just with
no base relocations to apply) as we do not set the
IMAGE_FILE_RELOCS_STRIPPED DLL characteristic.

2 years agocore: Do not check child freezability when thawing slice
msizanoen1 [Tue, 23 May 2023 11:46:26 +0000 (18:46 +0700)] 
core: Do not check child freezability when thawing slice

We want thawing operations to still succeed even in the presence of an
unfreezable unit type (e.g. mount) appearing under a slice after the
slice was frozen. The appearance of such units should never cause the
slice thawing operation to fail to prevent potential future repeats of
https://github.com/systemd/systemd/issues/25356.

2 years agoMerge pull request #27755 from keszybz/fix-root-resize-new
Yu Watanabe [Tue, 23 May 2023 21:08:54 +0000 (06:08 +0900)] 
Merge pull request #27755 from keszybz/fix-root-resize-new

Reload keymap and locale config after firstboot writes it out

2 years agoMerge pull request #27754 from poettering/cloexec-fdset-madness
Yu Watanabe [Tue, 23 May 2023 21:08:17 +0000 (06:08 +0900)] 
Merge pull request #27754 from poettering/cloexec-fdset-madness

pid1: when taking possession of passed fds check O_CLOEXEC state first

2 years agosd-boot,sd-stub: also print version after the address
Zbigniew Jędrzejewski-Szmek [Fri, 19 May 2023 15:18:41 +0000 (17:18 +0200)] 
sd-boot,sd-stub: also print version after the address

The kernel, systemd, and many other things print their version during boot.
sd-boot and sd-stub are also important, so let's print the version if EFI_DEBUG.
(If !EFI_DEBUG, continue to be quiet.)

When updating the docs, I saw that that the text in HACKING.md was out of date.
Instead of trying to update the instructions there, make it shorter and refer
the reader to tools/debug-sd-boot.sh for details.

2 years agomkfs-util: Silence noisy warning from mkfs.btrfs
Daan De Meyer [Tue, 23 May 2023 10:16:53 +0000 (12:16 +0200)] 
mkfs-util: Silence noisy warning from mkfs.btrfs

2 years agotest: test O_CLOEXEC filtering of fdset fill logic 27754/head
Lennart Poettering [Tue, 23 May 2023 16:39:53 +0000 (18:39 +0200)] 
test: test O_CLOEXEC filtering of fdset fill logic

2 years agofdset: minor modernizations
Lennart Poettering [Tue, 23 May 2023 18:45:40 +0000 (20:45 +0200)] 
fdset: minor modernizations

2 years agotree-wide: Fix false positives on newer gcc
Daan De Meyer [Tue, 23 May 2023 11:25:58 +0000 (13:25 +0200)] 
tree-wide: Fix false positives on newer gcc

Recent gcc versions have started to trigger false positive
maybe-uninitialized warnings. Let's make sure we initialize
variables annotated with _cleanup_ to avoid these.