Commit Graph
57686 Commits
Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek 1409ce6ed2 Add fuzzer for the bootspec parser 2022-05-08 17:58:00 +02:00
Zbigniew Jędrzejewski-Szmek a847b539de shared/bootspec: also export boot_config_load_type1()
The reallocation of memory and counter incrementation is moved from
the only caller to the function. This way the callers can remain oblivious
of the BootConfig internals.
2022-05-08 17:57:57 +02:00
Zbigniew Jędrzejewski-Szmek 5ba1550fd8 shared/bootspec: expose more parts of the config parsing 2022-05-08 17:56:12 +02:00
Zbigniew Jędrzejewski-Szmek 432ce53737 Move printing of boot entries from bootctl.c to shared/
I want to use this for fuzzing, but also later to return jsonified
list of entries from logind.
2022-05-08 17:55:03 +02:00
Zbigniew Jędrzejewski-Szmek ec725c0c49 shared/bootspec: add one more assert
All callers assume that boot_entry_title() always returns something.
It will, as long as it's not called on an uninitialized entry.
2022-05-08 17:53:56 +02:00
Zbigniew Jędrzejewski-Szmek 91da36f195 meson: sort list of fuzzers 2022-05-08 17:53:56 +02:00
Zbigniew Jędrzejewski-Szmek c04361d725 docs/ARCHITECTURE: describe fuzzer locations and use 2022-05-08 17:53:56 +02:00
Zbigniew Jędrzejewski-Szmek 680f2fb39d shared/json: disentangle flag mixup
_DEBUG and _RELAX had the same value… I'm not sure what the effect
of this is.
2022-05-07 11:41:57 +09:00
Yu Watanabe 01af366ef9 Merge pull request #23291 from yuwata/udev-rule-fix-regression
udev: fix parent token handling
2022-05-07 04:58:20 +09:00
Yu Watanabe 0139026b3e Merge pull request #23290 from keszybz/three-fixes
Three fixes
2022-05-07 04:57:36 +09:00
Yu Watanabe af2ff171e0 Merge pull request #23272 from keszybz/logind-man-and-rules
Logind man and rules
2022-05-07 04:23:02 +09:00
Yu Watanabe d94802e988 test: add testcase for #23288 2022-05-07 02:51:31 +09:00
Yu Watanabe eba782d59b udev: fix parent token handling
This fixes a bug introduced by 03677889f0.

Fixes #23288.
2022-05-07 02:51:21 +09:00
Zbigniew Jędrzejewski-Szmek b38a9d2d77 basic/strv: fix splitting of strings with escape characters
Plain strv_split() should not care if the strings contains backslashes
or quote characters. But extract_first_word() interprets backslashes
unless EXTRACT_RETAIN_ESCAPE is given.

I wonder how it's possible that nobody noticed this before. I think this
code was introduced in 0645b83a40.
2022-05-06 18:26:30 +02:00
Zbigniew Jędrzejewski-Szmek 34c2d32cf9 shared/terminal-util: don't use $COLORTERM to force colors
Fixup for a5efbf468c: if $COLORTERM was set, we'd
unconditionally turn on colors, which is unexpected and wrong. It even breaks
our own tests when executed in gnome-terminal.
2022-05-06 18:26:26 +02:00
Yu Watanabe ad11dd94fd README: mention kernel requirement for ambient capabilities
Closes #23231.
2022-05-06 09:33:49 +01:00
Khem Raj 0dd5ec58fa resolve: Use sockaddr pointer type for bind()
bind() expects sockaddr* but SERVER_ADDRESS is sockaddr_in type struct

Fixes errors with clang e.g.

../git/src/resolve/test-resolved-stream.c:112:32: error: incompatible pointer types passing 'struct sockaddr_in *' to parameter of type 'const struct sockaddr *' [-Werror,-Wincompatible-pointer-types]
        assert_se(bind(bindfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS)) >= 0);
                               ^~~~~~~~~~~~~~~
../git/src/resolve/test-resolved-stream.c:251:39: error: incompatible pointer types passing 'struct sockaddr_in *' to parameter of type 'const struct sockaddr *' [-Werror,-Wincompatible-pointer-types]
                r = connect(clientfd, &SERVER_ADDRESS, sizeof(SERVER_ADDRESS));

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2022-05-06 17:29:59 +09:00
Thomas Weißschuh 15d4c239f4 userdbctl: initialize parameter n for uid_range_load_userns()
uid_range_load_userns() dereferences the n parameter.

Passing unitialized memory may lead to crashes, for example with version
251rc2-1 on ArchLinux.
2022-05-06 13:48:51 +09:00
Zbigniew Jędrzejewski-Szmek e447f9ac0b docs/RELEASE: typo in target name 2022-05-05 19:49:26 +02:00
Zbigniew Jędrzejewski-Szmek e654d4316c Merge pull request #23277 from keszybz/news-and-hwdb-update
News and hwdb update
2022-05-05 19:02:49 +02:00
Zbigniew Jędrzejewski-Szmek 9aa3d6b41e Revert "shared/install: create relative symlinks for enablement and aliasing"
This reverts commit d6c9411072.

I still think this is something that needs to be done, but we're hitting some
unexplained failures, e.g. https://github.com/systemd/systemd/issues/22920.
So let's revert this for now, so -rc2 can be released, with a plan to return
to this after a release.

Closes #22920.
2022-05-05 19:02:26 +02:00
Jakob Lell 14736ab6ff Amend documentation for LimitNPROC= 2022-05-05 18:04:54 +02:00
Daan De Meyer 5517607ad7 journal: Make journal_default_metrics() static
Only caller resides in the same file as were it's defined so no
need to have it be public.
2022-05-05 16:32:24 +02:00
Zbigniew Jędrzejewski-Szmek 7000a8c3bc Merge pull request #23273 from keszybz/bootctl-quiet
bootctl --quiet and --graceful
2022-05-05 16:30:53 +02:00
Zbigniew Jędrzejewski-Szmek da2f26b2cb hwdb: run "update-hwdb" 2022-05-05 16:28:46 +02:00
Zbigniew Jędrzejewski-Szmek 211b564a32 NEWS: update with final changes 2022-05-05 16:28:46 +02:00
Andreas Rammhold 66c38cd053 core: handle lookup paths being symlinks
With a recent change paths leaving the statically known lookup paths would be
treated differently then those that remained within those. That was done
(AFAIK) to consistently handle alias names. Unfortunately that means that on
some distributions, especially those where /etc/ consists mostly of symlinks,
would trigger that new detection for every single unit in /etc/systemd/system.
The reason for that is that the units directory itself is already a symlink.

Rebased-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
2022-05-05 14:46:52 +02:00
Zbigniew Jędrzejewski-Szmek 14e6e444dd bootctl: add --quiet
It's useful for installation scripts and suchlike.
Raised in https://bugzilla.redhat.com/show_bug.cgi?id=2079784#c9.
2022-05-05 12:30:06 +02:00
Zbigniew Jędrzejewski-Szmek 18eb56c3c0 bootctl: support --graceful in is-installed 2022-05-05 12:30:06 +02:00
Zbigniew Jędrzejewski-Szmek e8a5b13e45 meson: move vconsole rules to rules.d/ 2022-05-05 11:51:44 +02:00
Zbigniew Jędrzejewski-Szmek 155078c835 meson: move udev rules to rules.d/ 2022-05-05 11:51:44 +02:00
Zbigniew Jędrzejewski-Szmek 4a5f779f0e TODO: add entry about boot entries on the bus
Something like this is needed to allow integration with graphical envs and
fully unprivileged operation.
2022-05-05 11:51:44 +02:00
Zbigniew Jędrzejewski-Szmek e4239a34d7 man: deduplicate dbus versioning ref 2022-05-05 11:48:22 +02:00
Zbigniew Jędrzejewski-Szmek 01942823ae man: beef up o.fd.login1 page a bit and recommend busctl too
gdbus is an external program, so it makes sense to recommend busctl.
2022-05-05 11:48:22 +02:00
Lennart Poettering a8796773b0 update TODO 2022-05-05 10:55:18 +02:00
Sonali Srivastava a5efbf468c terminal-util: get_color_mode checks COLORTERM 2022-05-05 09:18:51 +02:00
Evgeny Vereshchagin 51cef2b56f Merge pull request #23246 from medhefgo/check-compilation
meson: Improve public header tests
2022-05-05 01:53:28 +03:00
Daan De Meyer 746ea80b77 basic: Add some missing headers to compress.h 2022-05-04 22:47:58 +01:00
Matthijs van Duin b0221bb6a4 Fix placement of TTL TLV in LLDP transmit
The LLDP spec (IEEE 802.1AB) requires the three mandatory TLVs (Chassis
ID, Port ID, and TTL) to be the first three TLVs in the packet, in that
specific order, whereas systemd put the TTL near the end of the packet.

This violation caused the ethernet switch in our office to discard these
packets as malformed, and Wireshark's packet parser also chokes on them.
2022-05-05 01:19:02 +09:00
Evgeny Vereshchagin a2e37d5231 timedatectl: fix a memory leak
```
timedatectl list-timezones --no-pager
...
==164329==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 8192 byte(s) in 1 object(s) allocated from:
    #0 0x7fe8a74b6f8c in reallocarray (/lib64/libasan.so.6+0xaef8c)
    #1 0x7fe8a63485dc in strv_push ../src/basic/strv.c:419
    #2 0x7fe8a6349419 in strv_consume ../src/basic/strv.c:490
    #3 0x7fe8a634958d in strv_extend ../src/basic/strv.c:542
    #4 0x7fe8a643d787 in bus_message_read_strv_extend ../src/libsystemd/sd-bus/bus-message.c:5606
    #5 0x7fe8a643db9d in sd_bus_message_read_strv ../src/libsystemd/sd-bus/bus-message.c:5628
    #6 0x4085fb in list_timezones ../src/timedate/timedatectl.c:314
    #7 0x7fe8a61ef3e1 in dispatch_verb ../src/shared/verbs.c:103
    #8 0x410f91 in timedatectl_main ../src/timedate/timedatectl.c:1025
    #9 0x41111c in run ../src/timedate/timedatectl.c:1043
    #10 0x411242 in main ../src/timedate/timedatectl.c:1046
    #11 0x7fe8a489df1f in __libc_start_call_main (/lib64/libc.so.6+0x40f1f)
```
2022-05-05 00:05:57 +09:00
Lennart Poettering 8dd11be77f Merge pull request #23261 from poettering/dir-is-empty
dir_is_empty() fixes
2022-05-04 16:36:34 +02:00
Yu Watanabe 9b260c967b Merge pull request #23264 from keszybz/shorten-test-names
Shorten test names
2022-05-04 23:25:47 +09:00
Jan Janssen ee8052c137 meson: Add -Wall and -Wextra to header checks
This should ensure public headers are free from any warnings.
2022-05-04 16:11:41 +02:00
Jan Janssen 14056a52c6 meson: Use meson test suite feature
This makes it easier to only test a subset of tests without having
to specify them all on the command line:
    meson test -C build --suite headers
2022-05-04 16:11:34 +02:00
Jan Janssen 911c15087c meson: Remove check-compilation.sh
No need to involve a trivial shell script for this.

We could call the compiler directly, but test() expects arguments
to be passed separately and cc.cmd_array() can contain arguments
itself. Using env is easier than manually slicing the array because
meson has no builtins for that.
2022-05-04 15:59:51 +02:00
Jan Janssen 3d35c6d47e meson: Exit early with subdir_done() 2022-05-04 15:59:03 +02:00
Yu Watanabe c322cfafba man/networkctl: mention initialized state
Closes #23262.
2022-05-04 14:44:13 +01:00
Zbigniew Jędrzejewski-Szmek d7ff524039 tree-wide: drop manually-crafted message for missing variables
Bash will generate a very nice message for us:
/tmp/ff.sh: line 1: SOMEVAR: parameter null or not set

Let's save some keystrokes by not replacing this with our own inferior
messages.
2022-05-04 20:53:46 +09:00
Lennart Poettering 0af6ce9ab3 stat-util: drop dir_is_populated() which is apparently not used 2022-05-04 13:29:14 +02:00
Lennart Poettering db55bbf29b stat-util: fix dir_is_empty() with hidden/backup files
This is a follow-up for f470cb6d13 which in
turn is a follow-up for a068aceafb.

The latter started to honour hidden files when deciding whether a
directory is empty. The former reverted to the old behaviour to fix
issue #23220.

It introduced a bug though: when a directory contains a larger number of
hidden entries the getdents64() buffer will not suffice to read them,
since we just allocate three entries for it (which is definitely enough
if we just ignore the . + .. entries, but not ig we ignore more).

I think it's a bit confusing that dir_is_empty() can return true even if
rmdir() on the dir would return ENOTEMPTY. Hence, let's rework the
function to make it optional whether hidden files are ignored or not.
After all, I looking at the users of this function I am pretty sure in
more cases we want to honour hidden files.
2022-05-04 13:29:14 +02:00