1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-02-01 05:47:04 +03:00

63316 Commits

Author SHA1 Message Date
Jan Janssen
2d58262118 boot: Fix boot counting for XBOOTLDR entries
We were passing the dir handle for the ESP to
config_entry_bump_counters(), which will obviously fail if the entry
actually resides on the XBOOTLDR partition.

Fixes: #28637
(cherry picked from commit 66fd078ba89e90e8aeba6edac52d20456fc2cd5d)
(cherry picked from commit b44bd7d7a88a1ca7a03aebbf5d791f3f99789fb9)
2023-08-09 23:04:43 +01:00
Jan Janssen
4953edf2fb bless-boot: Actually return successfully
$ journalctl -u systemd-bless-boot.service
systemd[1]: Starting Mark the Current Boot Loader Entry as Good...
systemd-bless-boot[536]: Marked boot as 'good'. (Boot attempt counter is at 2.)
systemd-bless-boot[536]: Can't find boot counter source file for '/loader/entries/arch.conf': Device or resource busy
systemd[1]: Finished Mark the Current Boot Loader Entry as Good.

(cherry picked from commit 8f30a066ff48325c9197ae3b103cd446852b9f3d)
(cherry picked from commit ca38c7d81b909af2b615ef9a89251ce6ad25b977)
2023-08-09 23:04:43 +01:00
Yu Watanabe
2c2b89aede network-generator: make network file generated from ip=dhcp matches only physical interfaces
Otherwise, it also matches later created virtual devices, and that
breaks networks generated and managed by container management services,
like docker.

Closes #28626.

(cherry picked from commit c25aa6c8acc6d95eaacae7858a7057907d61a25e)
(cherry picked from commit d39bfd26d47793fc95aabfd9ff4f32e8d63d1021)
2023-08-09 23:04:43 +01:00
Khem Raj
322a7ad4c6 include sys/file.h for LOCK_EX
Fixes
| ../git/src/basic/user-util.c:708:30: error: use of undeclared identifier 'LOCK_EX'; did you mean 'LOCK_BSD'?
|   708 |         r = unposix_lock(fd, LOCK_EX);
|       |                              ^~~~~~~
|       |                              LOCK_BSD

Signed-off-by: Khem Raj <raj.khem@gmail.com>
(cherry picked from commit 213ddf2d0525535533a8d758b50b99fcbd31c17b)
(cherry picked from commit c12373dc4416e545f221d5b05eef1387a8e53372)
2023-08-09 23:04:43 +01:00
Franck Bui
8541307b23 test: install systemd-homed for openSUSE
This new sub-package has been recently introduced.

(cherry picked from commit 33ce0a899258ed8dfb4a234a9f67e678127d41f9)
(cherry picked from commit 65d5b3561c2692e947327e9a77d3b1b4d932c828)
2023-08-09 23:04:43 +01:00
Franck Bui
c65270ef5f test: console fonts are located in /usr/share on openSUSE
(cherry picked from commit ba0ff9fc0fa657024edd7a4a0aab01aa95b39ff5)
(cherry picked from commit ca0c8adf9d6d348cd59e12282e1effab4a39c5f3)
2023-08-09 23:04:43 +01:00
Yu Watanabe
fbfb9403e7 test: skip tests earlier when we do not have enough privileges
Hopefully fixes #28624.

(cherry picked from commit 46f0a4e7ac97b47c5718b718e3c6db4a8a8e78a0)
(cherry picked from commit f1df09a9fd4b22f09450465137e11e34104c8b2c)
2023-08-09 23:04:43 +01:00
Yu Watanabe
22bd243c80 udev-builtin-net_id: fix potential buffer overflow
(cherry picked from commit 5660e68d651545b43e13a51b068e64022637a6c6)
(cherry picked from commit a987b0f12133bcb5ab73000109468871bfbab3c2)
2023-08-09 23:04:43 +01:00
David Tardon
a4b275450d core: free the strings in the set in other places too
Follow-up for #28551.

(cherry picked from commit 1a572fd08ff4a01f77d3b8c8465a559971c77466)
(cherry picked from commit 5c47cc39296c26dfad69548f93e6e36c15551946)
2023-08-09 23:04:43 +01:00
Yu Watanabe
37833dc1de network/address: make Label= accept an empty string
We usually reset setting when an emptry string is specified.

(cherry picked from commit b8e898a681a7d8a663b766f8e44469bc910d20cc)
(cherry picked from commit 9087f924f9fec58e658aeb929a4d17b789c886ea)
2023-08-09 23:04:43 +01:00
Zbigniew Jędrzejewski-Szmek
9449449ef9 man/systemd.service: advise Type=exec instead of Type=simple
The descriptions of various options are reworked: first say what protocol
actually is, i.e. describe what type of notification the manager waits
for. Only after that describe various steps and things the service should
do. Also, apply some paragraph breaks.

Instead of recommending Type=simple, recommend Type=exec. Say explicitly that
Type=simple, Type=forking are not recommended. Type=simple ignores failure in a
way that doesn't make any sense except as a historical accident. We introduced
'exec' instead of changing 'simple' to keep backwards-compatiblity, but
'simple' is not very useful. 'forking' works, but is inefficient: correctly
programming the interface requires a lot of work, and at runtime, the
additional one or two forks are just a waste of CPU resources. Furthermore, we
now understand that because of COW traps, they may also increase memory
requirements. There is really no reason to use 'forking', except if it's
already implemented and the code cannot be changed to use 'notify'.

Also, remove the recommendations to use Type=simple to avoid delaying boot. In
most cases, if the service can support notifications about startup, those
should be done.

Overall, for new services, "notify", "notify-reload", and "dbus" are the
types that make sense.

(cherry picked from commit 377d3a31e638c834ba66edefa4cabc90318420fc)
(cherry picked from commit 3d9be9aa3171d2096ab4922630f4db0a548e570d)
2023-08-09 23:04:43 +01:00
Zbigniew Jędrzejewski-Szmek
d1198b7760 configure: update meson invocation
New meson says:
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.

Inspired by https://github.com/systemd/systemd/issues/28482.

(cherry picked from commit 4f3c90acfee4f5bbd128bdc72008fa2f79d52cfd)
(cherry picked from commit ce856bb8c2f8d64504faababa8d046880bfa7165)
2023-08-09 23:04:43 +01:00
Frantisek Sumsal
b97ec52239 core: free the strings in the set as well during unit cleanup
Spotted while fuzzing #27890.

=================================================================
==908098==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7f4efe6d81f5 in __interceptor_realloc.part.0 (/lib64/libasan.so.8+0xd81f5) (BuildId: dc689b05ca2577037af24700212bb5cce1f91c8a)
    #1 0x7f4efb8e3ace in greedy_realloc ../src/basic/alloc-util.c:70
    #2 0x7f4efb93b713 in extract_first_word ../src/basic/extract-word.c:62
    #3 0x7f4efb970d50 in set_put_strsplit ../src/basic/hashmap.c:1902
    #4 0x7f4efd76c27e in exec_context_deserialize ../src/core/execute-serialize.c:3341
    #5 0x7f4efd778dcb in exec_deserialize ../src/core/execute-serialize.c:4122
    #6 0x4032c0 in LLVMFuzzerTestOneInput ../src/core/fuzz-execute-serialize.c:60
    #7 0x403c58 in main ../src/fuzz/fuzz-main.c:50
    #8 0x7f4efecccb49 in __libc_start_call_main (/lib64/libc.so.6+0x27b49) (BuildId: 245240a31888ad5c11bbc55b18e02d87388f59a9)
    #9 0x7f4efecccc0a in __libc_start_main_alias_2 (/lib64/libc.so.6+0x27c0a) (BuildId: 245240a31888ad5c11bbc55b18e02d87388f59a9)
    #10 0x402344 in _start (/home/mrc0mmand/repos/@systemd/systemd/build-san/fuzz-execute-serialize+0x402344) (BuildId: 195f382cf1e39b9ba48d6dcf5a90f786d72837a8)

SUMMARY: AddressSanitizer: 64 byte(s) leaked in 1 allocation(s).
Aborted (core dumped)

==911550==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 17 byte(s) in 1 object(s) allocated from:
    #0 0x4df281 in strdup (/home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/fuzz-execute-serialize+0x4df281) (BuildId: 4e58706e607b8be7972d83c421bc0b625d509ec6)
    #1 0x7fe4ae2b38fc in _set_put_strndup_full /home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/../src/basic/hashmap.c:1868:21
    #2 0x7fe4b0bad897 in exec_context_deserialize /home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/../src/core/execute-serialize.c:3914:29
    #3 0x7fe4b0b80592 in exec_deserialize /home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/../src/core/execute-serialize.c:4109:13
    #4 0x531d0f in LLVMFuzzerTestOneInput /home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/../src/core/fuzz-execute-serialize.c:59:16
    #5 0x440594 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) (/home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/fuzz-execute-serialize+0x440594) (BuildId: 4e58706e607b8be7972d83c421bc0b625d509ec6)
    #6 0x43f9b9 in fuzzer::Fuzzer::RunOne(unsigned char const*, unsigned long, bool, fuzzer::InputInfo*, bool, bool*) (/home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/fuzz-execute-serialize+0x43f9b9) (BuildId: 4e58706e607b8be7972d83c421bc0b625d509ec6)
    #7 0x440fd5 in fuzzer::Fuzzer::MutateAndTestOne() (/home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/fuzz-execute-serialize+0x440fd5) (BuildId: 4e58706e607b8be7972d83c421bc0b625d509ec6)
    #8 0x441955 in fuzzer::Fuzzer::Loop(std::vector<fuzzer::SizedFile, std::allocator<fuzzer::SizedFile>>&) (/home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/fuzz-execute-serialize+0x441955) (BuildId: 4e58706e607b8be7972d83c421bc0b625d509ec6)
    #9 0x42e151 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) (/home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/fuzz-execute-serialize+0x42e151) (BuildId: 4e58706e607b8be7972d83c421bc0b625d509ec6)
    #10 0x45a916 in main (/home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/fuzz-execute-serialize+0x45a916) (BuildId: 4e58706e607b8be7972d83c421bc0b625d509ec6)
    #11 0x7fe4ac449b49 in __libc_start_call_main (/lib64/libc.so.6+0x27b49) (BuildId: 245240a31888ad5c11bbc55b18e02d87388f59a9)
    #12 0x7fe4ac449c0a in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x27c0a) (BuildId: 245240a31888ad5c11bbc55b18e02d87388f59a9)
    #13 0x422b74 in _start (/home/mrc0mmand/repos/@systemd/systemd/build-libfuzz/fuzz-execute-serialize+0x422b74) (BuildId: 4e58706e607b8be7972d83c421bc0b625d509ec6)
SUMMARY: AddressSanitizer: 17 byte(s) leaked in 1 allocation(s).

(cherry picked from commit 9b412709f21a4868e1bc0bb3252a4d26e862633b)
(cherry picked from commit 7bd680bc62c3d071ae6b4b4a834f79b4eceff0d8)
2023-08-09 23:04:43 +01:00
Luca Boccassi
b7531639dc bus: add some minimal bounds check on signatures
CID#1491292
CID#1491291
CID#1491290
CID#1491289
CID#1491284
CID#1491281
CID#1491280
CID#1491278

(cherry picked from commit d80cc39558ec7e596d594d1aadc4df81262611f8)
(cherry picked from commit a518ea9ff1fe55c7bb5e4f391858a57d66b779d0)
2023-08-09 23:04:43 +01:00
наб
ca7787a9f2 find-esp: fix XBOOTLDR stx_dev_major=0 and not btrfs fix
The original commit is fully correct in its analysis, description, and
mechanics, but the patch changes an identical condition around line 500
(find_esp_and_warn()), instead of line 800 (find_xbootldr_and_warn()).

The internal patch I distributed to testers was correct (L800), and
neither the reviewers, nor me, caught that I wrote the wrong line for
upstream submission. I've re-checked that this patch applied to
systemd 252.11-1 fixes the issue.

Keep the -ENOTTY condition for find_esp_and_warn(), since the conditions
are clearly supposed to be the same and similar semantics apply.

Fixes: commit ed89819f8fd7bfe99cd652082076e85e1417e4e9 ("find-esp: don't
 silently error bootctl install if presumed XBOOTLDR part is
 stx_dev_major=0 but not btrfs")
(cherry picked from commit f26c794308975a875a98faf22a6650d7134f17c1)
2023-07-20 10:57:54 +02:00
Dmitry V. Levin
f1c4da0414 test: fix use of ERRNO_IS_PRIVILEGE()
Given that ERRNO_IS_PRIVILEGE() also matches positive values,
make sure this macro is not called with arguments that do not have
errno semantics.

In this case the arguments passed to ERRNO_IS_PRIVILEGE() are the values
returned by read_one_line_file() which can legitimately return positive
values without errno semantics, so fix this by moving ERRNO_IS_PRIVILEGE()
invocations to the branches where the return values are known to be negative.

(cherry picked from commit fce846e0ace95920155088a7e70dac914e437e68)
v253.7
2023-07-17 18:08:54 +02:00
Dmitry V. Levin
791dbff59b resolved: fix use of ERRNO_IS_DISCONNECT()
Given that ERRNO_IS_DISCONNECT() also matches positive values,
make sure this macro is not called with arguments that do not have
errno semantics.

In this case the argument passed to ERRNO_IS_DISCONNECT() is the value
returned by manager_recv() which can legitimately return 1 without errno
semantics, so fix this by moving ERRNO_IS_DISCONNECT() invocation to the
branch where the return value is known to be negative.

(cherry picked from commit 0bdea17c0aa37c4cdf586c072a7b35f8d0598cc3)
2023-07-17 18:08:53 +02:00
Dmitry V. Levin
920568b7e2 sd-bus: fix use of ERRNO_IS_DISCONNECT()
Given that ERRNO_IS_DISCONNECT() also matches positive values,
make sure this macro is not called with arguments that do not have
errno semantics.

In this case the argument passed to ERRNO_IS_DISCONNECT() is the value
returned by bus_socket_process_watch_bind(), bus_socket_process_opening(),
and bus_socket_process_authenticating() which can legitimately return
positive values without errno semantics, so fix this by moving the
ERRNO_IS_DISCONNECT() invocation to the branch where the return value
is known to be negative.

(cherry picked from commit bb228f0ebc9b691ee2a871bffbf949936568f3ea)
2023-07-17 18:08:52 +02:00
Dmitry V. Levin
ebce7284fd socket: fix use of ERRNO_IS_DISCONNECT()
Given that ERRNO_IS_DISCONNECT() also matches positive values,
make sure this macro is not called with arguments that do not have
errno semantics.

In this case the argument passed to ERRNO_IS_DISCONNECT() is the value
returned by socket_acquire_peer() which can legitimately return 1
without errno semantics, so fix this by moving ERRNO_IS_DISCONNECT()
invocation to the branch where the return value is known to be negative.

(cherry picked from commit d5f8890bbf375075c7042b31ff6e79ad491df04c)
2023-07-17 18:08:51 +02:00
Dmitry V. Levin
24256d039f kbd-util: fix use of ERRNO_IS_RESOURCE()
Given that ERRNO_IS_RESOURCE() also matches positive values,
make sure this macro is not called with arguments that do not have
errno semantics.

In this case the argument passed to ERRNO_IS_RESOURCE() is the value
returned by recurse_dir_at() which can legitimately return positive
values without errno semantics, so fix this by moving the ERRNO_IS_RESOURCE()
invocation to the branch where the return value is known to be negative.

(cherry picked from commit ed3745b51cd823d4a651e250050b2b674f055585)
2023-07-17 18:08:47 +02:00
Daan De Meyer
5d62126451 units: Add --graceful flag to pcrphase units
Some of the new units using systemd-pcrphase are missing the --graceful
flag which causes them to error if the tpm libraries are not installed.
Add --graceful just like in the other pcrphase units to make systemd-pcrphase
exit gracefully if the tpm libraries are missing.

(cherry picked from commit f2aaa14d37e4257dd2f1fdc66063dc08a66d7f8b)
2023-07-17 18:08:37 +02:00
David Tardon
d6b23dd062 pam_systemd_home: suppress LOG_DEBUG msgs if debugging is off
This is a "sequel" to commit 2675747f3cdd6f1e6236bbb2f79abfa53fb307f1 .

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2210770
(cherry picked from commit f71b55b51075e7ce42fa0ad4ae5569ba1aea6ee2)
2023-07-17 16:53:33 +02:00
Mike Yuan
d7bb1f570a journalctl: fix when --grep is used with --follow
Follow-up for #25147 (db4691961ca52759fe6645d0fddb659ee4299ac2)

--follow sets arg_lines to 10, which breaks
--grep as the latter implies --reverse.
So let's not set --reverse if --follow is used.

(cherry picked from commit c673fd52e048138a6786fb9114c1ddbf0057d6fb)

Should fix https://bugzilla.redhat.com/show_bug.cgi?id=2215304.
2023-07-17 16:49:42 +02:00
Zbigniew Jędrzejewski-Szmek
5b3affccde hwdb: update to d98037166929b87ed119a1560d398a9460113eb7
git restore -s origin/main hwdb.d/ test/hwdb.d test/hwdb-test.sh
2023-07-17 16:49:42 +02:00
Luca Boccassi
908463cafb sd-gpt: __mips__ is also defined when building __mips64
Follow-up for d75ec33ed2a1781a82f9e0d62a79244ecd1e1edc

(cherry picked from commit c26a01ac8be0a9ab2857cd2006d9f6705c77b9b3)
2023-07-17 16:49:42 +02:00
Luca Boccassi
9c66d0ce10 gpt: it's __mips64, not __mips64__
But it's __mips__ not __mips, obviously

Follow-up for d75ec33ed2a1781a82f9e0d62a79244ecd1e1edc

(cherry picked from commit 10ad311e7cdba862fd994a8b47576146a8e64efb)
2023-07-17 16:49:42 +02:00
Dmitry V. Levin
95d651666a resolved: fix the canonical name returned by hosts lookup by name
In etc_hosts_lookup_by_name(), return the canonical name of the resolved
address instead of the name used to obtain that address.

Resolves: #20158
(cherry picked from commit 1ddc2f7fbceea4fb051eeb50d356285c7ef9519b)
2023-07-17 16:49:42 +02:00
Dmitry V. Levin
51884ccbca resolved: fix the canonical name returned by hosts lookup by address
In etc_hosts_lookup_by_address(), make sure the canonical name of the given
address is returned first in the list of names that address resolves to.

Resolves: #25088
(cherry picked from commit 0ff8f2a33a8f7c225860388faf43fa83f106cfe3)
2023-07-17 16:49:41 +02:00
Dmitry V. Levin
139cb31bf8 resolved: keep track of first names listed for each address in /etc/hosts
These names will be used later in responses as canonical names.

(cherry picked from commit 1bd76a6217c0cd81972cd50b360cd5b8aa27f0ff)
2023-07-17 16:49:41 +02:00
Yu Watanabe
3ce7c9756c network: check lifetime of address and route before configure
Otherwise, we may configure a route that depends on the existence
of an address or another route, and may fail when lifetime of one
of them are already zero.

Hopefully fixes #28358.

(cherry picked from commit dc32de392466c3cadab313abbc636e341047049b)
2023-07-17 16:49:41 +02:00
Fuminobu TAKEYAMA
ead40508d7 core: fix race condition during startup of a service with ExitType=cgroup
This commit allows service_sigchld_event() is executed before
service_dispatch_exec_io(), which might happen when a main process exits
very quickly.

Also do not check PID for service goodness because the main process have
already been exited in this case.

Fix: #27919
(cherry picked from commit ef4300654e70e76ed74f7d544e0f44c5d92fb698)
2023-07-17 16:49:41 +02:00
Yu Watanabe
ef5a65a41f man: move <varlistentry> in <variablelist>
(cherry picked from commit 16a07ffc64e6ab855d2d93f14b2aa5f32c6c47ac)
2023-07-17 16:49:41 +02:00
Yu Watanabe
6dd8e62712 seccomp: add arm_fadvise64_64 to system-service group
fadvise64 and fadvise64_64 are already in the group, but arm_ version
was not.

Fixes #28350.

(cherry picked from commit 26b682e81692fa637c1d23e827069f31385d3f7c)
2023-07-17 16:49:41 +02:00
Luca Boccassi
cffc34c4a6 sd-gpt: add missing SD_GPT_*NATIVE* defines for mips/mips64/parisc
We already had the arch-specific UUIDs defined, but they were not wired up

(cherry picked from commit d75ec33ed2a1781a82f9e0d62a79244ecd1e1edc)
2023-07-17 16:49:41 +02:00
Daan De Meyer
1e39026869 network-generator: Add missing umask(0022)
(cherry picked from commit c9d85c22066f690ab09f0298772bee43583b7d2b)
2023-07-17 16:49:41 +02:00
Daan De Meyer
ed9f4ef014 network-generator: Add missing log_setup()
(cherry picked from commit 8b24bcdfa8c5a4b32cf273d74dc5130626c44c22)
2023-07-17 16:16:23 +02:00
Xeonacid
a4d70c015b seccomp: add riscv_hwprobe to @default
This syscall is for probing hardware capabilities from userspace and should do no harm.
Added in ea3de9ce8a

(cherry picked from commit ca15fc4820ad1ef2d54c695699de949974dc5bbc)
2023-07-17 16:15:36 +02:00
Luca Boccassi
47281053e4 Revert "unit: add ordering dep relative to credentials dir"
Causes a cycle at shutdown, undo the backport.

Jul 10 22:13:21 H systemd[1]: poweroff.target: Trying to enqueue job poweroff.target/start/replace-irreversibly
Jul 10 22:13:21 H systemd[1]: local-fs-pre.target: Found ordering cycle on run-credentials-systemd\x2dtmpfiles\x2dsetup\x2ddev.service.mount/stop
Jul 10 22:13:21 H systemd[1]: local-fs-pre.target: Found dependency on systemd-tmpfiles-setup-dev.service/stop
Jul 10 22:13:21 H systemd[1]: local-fs-pre.target: Found dependency on local-fs-pre.target/stop
Jul 10 22:13:21 H systemd[1]: local-fs-pre.target: Job run-credentials-systemd\x2dtmpfiles\x2dsetup\x2ddev.service.mount/stop deleted to break ordering cycle starting with local-fs-pre.target/stop
Jul 10 22:13:21 H systemd[1]: systemd-sysusers.service: Found ordering cycle on systemd-tmpfiles-setup-dev.service/stop
Jul 10 22:13:21 H systemd[1]: systemd-sysusers.service: Found dependency on local-fs-pre.target/stop
Jul 10 22:13:21 H systemd[1]: systemd-sysusers.service: Found dependency on run-credentials-systemd\x2dsysusers.service.mount/stop
Jul 10 22:13:21 H systemd[1]: systemd-sysusers.service: Found dependency on systemd-sysusers.service/stop
Jul 10 22:13:21 H systemd[1]: systemd-sysusers.service: Job systemd-tmpfiles-setup-dev.service/stop deleted to break ordering cycle starting with systemd-sysusers.service/stop

This reverts commit ad10ffe6a9dfe5244ffe0626bed0c0edd802388f.
v253.6
2023-07-10 22:22:11 +01:00
Frantisek Sumsal
7977cbd830 test: make the root/data partition size configurable per test
(cherry picked from commit 0334afe4d01b0f24d06995bb3ee4f5c2ff7d58c6)
2023-07-09 20:41:50 +01:00
Luca Boccassi
04e0ed93ee hwdb: update to 75a9122678e0cf852b6e9161db9a32e557213537
git restore -s origin/main hwdb.d/ test/hwdb.d test/hwdb-test.sh
2023-07-07 19:30:52 +01:00
Yu Watanabe
087b9a70b0 meson: allow to fallback to use libxcrypt.pc or glibc's libcrypt
Some distributions still use glibc's libcrypt. In that case, libcrypt.pc
does not exist and dependency() will fail.
Also, even if libxcrypt is used, there may not be a symlink
from libcrypt.pc to libxcrypt.pc. So, let's add a secondary name.

Follow-up for d625f717db6e151fd78742593c35eaba4cd2841d.

Fixes #28289.

[ fixed to fallback to extra dependency() call as multiple deps require meson 0.60 ]

(cherry picked from commit 555737878f66e64dea50dd7bf6f0b12cc54d2963)
2023-07-07 19:30:52 +01:00
Frantisek Sumsal
7dc6cccc4b test: replace readfp() with read_file()
ConfigParser.readfp() has been deprecated since Python 3.2 and was
dropped completely in Python 3.11.

(cherry picked from commit ba4a1cd8a863f65ff016be72e520c323aa1e1a6f)
2023-07-07 19:30:52 +01:00
Yu Watanabe
f74337b756 test-network: add one more testcase for DHCPv4 classless route
For issue #28280.

(cherry picked from commit 86f6760038477e9e27ccea580f1b3b27328a98a7)
2023-07-07 19:30:52 +01:00
Yu Watanabe
234b51fb73 network/dhcp4: do not ignore the gateway even if the destination is in the same network
Fixes #28280.

(cherry picked from commit 77451f654a89d822cd288883edfac315949d1cb6)
2023-07-07 19:30:52 +01:00
Yu Watanabe
f9a8c8299c sd-device: do not read uevent file in device_clone_with_db()
Follow-up for 381f6d4ba5551898e7ff19189485072b94879281.

When the function is called, the device may be already removed, and
another device has the same syspath. Such situation can occur when a
partition removed and another is created. In that case, the sysfs paths
of the removed and newly created partitions can be same, but their
devnums are different, and thus the database files corresponding to the
devices are also different.

Fixes #27981.

(cherry picked from commit 35e49f2856dc7e80cfc6c9af3dca4e3aad9b8cb5)
2023-07-07 19:30:52 +01:00
Yu Watanabe
49fa7736f7 meson: first try dependency(), then fallback to find_library()
This also drops the fallback for libacl, libcap, libcrypt, and libgcrypt,
as recent Ubuntu (at least, 20.04 LTS and newer) and Debian (at least, buster
and newer) have relevant .pc files.

Fixes #28161.

(cherry picked from commit d625f717db6e151fd78742593c35eaba4cd2841d)
2023-07-07 19:30:52 +01:00
Yu Watanabe
abbd24e8a5 wait-online: request that at least one managed online interface exists
Fixes a regression caused by ab3aed4a0349bbaa26f53340770c1b59b463e05d.

I thought the commit does not cause any severe regression. However,
drivers for network interfaces may be loaded later. So, we should wait
if no network interface is found.

Fixes #27822.

(cherry picked from commit 2f96a29c2c55bdd67cdd8e0b0cfd6971968e4bca)
2023-07-07 19:30:52 +01:00
Dmitry V. Levin
ff63a08d57 pwquality: do not log password suggestions
As logging password suggestions might leak sensitive information,
print it instead.

Suggested-by: Yu Watanabe <watanabe.yu+github@gmail.com>
(cherry picked from commit 0351d560a25cb7caf94c1f9c1af1f5e9b6b6a01a)
2023-07-07 19:30:52 +01:00
Dmitry V. Levin
9ebacd3f72 pwquality: fix quality_check_password return value
quality_check_password() used to return the same value 0 in two
different cases: when pwq_allocate_context() failed with a
ERRNO_IS_NOT_SUPPORTED() code, and when pwquality_check() rejected the
password.  As result, users of quality_check_password() used to report
password weakness also in case when the underlying library was not
available.

Fix this by changing quality_check_password() to forward the
ERRNO_IS_NOT_SUPPORTED() code to its callers, and change the callers
to handle this case gracefully.

(cherry picked from commit 7fc3f9c032cad0690c08fcdee190d83f1c7a6d53)
2023-07-07 19:30:52 +01:00
Dmitry V. Levin
ac531ec920 pwquality: fix use of ERRNO_IS_NOT_SUPPORTED
Given that ERRNO_IS_*() also match positive values, call
ERRNO_IS_NOT_SUPPORTED() only if the value returned by
pwq_allocate_context() is negative.

(cherry picked from commit 29dd2e253c74c7ab2fed6fb6a67a87089197253f)
2023-07-07 19:30:52 +01:00