Changes between v2.42 and v2.42.1 --------------------------------- commit b1134f9d23cc584503648018204e434643e17205 Author: Karel Zak Date: Mon May 18 12:20:50 2026 +0200 build-sys: update release dates Signed-off-by: Karel Zak NEWS | 2 +- configure.ac | 2 +- meson.build | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) commit 9e733b94583a9a689864656570b0411f4fafb7a3 Author: Karel Zak Date: Mon May 18 12:20:36 2026 +0200 docs: update v2.42.1-ReleaseNotes Documentation/releases/v2.42.1-ReleaseNotes | 258 ++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) commit 1bafd238062f2fbecd4cce026d4f59fa1c535f40 Author: Karel Zak Date: Mon May 18 12:12:49 2026 +0200 po: merge changes po/ar.po | 1287 ++++++++++++++++++++++++----------------------- po/ca.po | 1320 ++++++++++++++++++++++++------------------------ po/cs.po | 1454 +++++++++++++++++++++++++++-------------------------- po/da.po | 1285 +++++++++++++++++++++++----------------------- po/de.po | 1287 ++++++++++++++++++++++++----------------------- po/es.po | 1282 +++++++++++++++++++++++----------------------- po/et.po | 1446 ++++++++++++++++++++++++++-------------------------- po/eu.po | 1359 +++++++++++++++++++++++++------------------------ po/fi.po | 1351 +++++++++++++++++++++++++------------------------ po/fr.po | 1287 ++++++++++++++++++++++++----------------------- po/gl.po | 1359 +++++++++++++++++++++++++------------------------ po/hr.po | 1282 +++++++++++++++++++++++----------------------- po/hu.po | 1365 +++++++++++++++++++++++++------------------------ po/id.po | 1401 ++++++++++++++++++++++++++------------------------- po/it.po | 1334 ++++++++++++++++++++++++------------------------ po/ja.po | 1454 +++++++++++++++++++++++++++-------------------------- po/ka.po | 1338 ++++++++++++++++++++++++------------------------ po/ko.po | 1287 ++++++++++++++++++++++++----------------------- po/nl.po | 1282 +++++++++++++++++++++++----------------------- po/pl.po | 1454 +++++++++++++++++++++++++++-------------------------- po/pt.po | 1454 +++++++++++++++++++++++++++-------------------------- po/pt_BR.po | 1286 +++++++++++++++++++++++----------------------- po/ro.po | 1454 +++++++++++++++++++++++++++-------------------------- po/ru.po | 1326 ++++++++++++++++++++++++------------------------ po/sk.po | 1312 ++++++++++++++++++++++++----------------------- po/sl.po | 1401 ++++++++++++++++++++++++++------------------------- po/sr.po | 1282 +++++++++++++++++++++++----------------------- po/sv.po | 1287 ++++++++++++++++++++++++----------------------- po/tr.po | 1286 +++++++++++++++++++++++----------------------- po/uk.po | 1287 ++++++++++++++++++++++++----------------------- po/util-linux.pot | 1337 ++++++++++++++++++++++++------------------------ po/vi.po | 1316 +++++++++++++++++++++++++----------------------- po/zh_CN.po | 1286 +++++++++++++++++++++++----------------------- po/zh_TW.po | 1359 +++++++++++++++++++++++++------------------------ 34 files changed, 23321 insertions(+), 22266 deletions(-) commit 836f8368afff16e2ce1f7087985d26e678bbc933 Author: Remus-Gabriel Chelu Date: Mon May 18 12:12:40 2026 +0200 po: update ro.po (from translationproject.org) po/ro.po | 248 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 122 insertions(+), 126 deletions(-) commit 0203b4566c6f84bf34373d4e2efe5c01d60a2972 Author: Pedro Albuquerque Date: Mon May 18 12:12:40 2026 +0200 po: update pt.po (from translationproject.org) po/pt.po | 1891 +++++++++++++++++++++----------------------------------------- 1 file changed, 637 insertions(+), 1254 deletions(-) commit 9e827bfd48093246120c903d8298d46b81e9ac44 Author: Jakub Bogusz Date: Mon May 18 12:12:40 2026 +0200 po: update pl.po (from translationproject.org) po/pl.po | 1889 +++++++++++++++++++++----------------------------------------- 1 file changed, 625 insertions(+), 1264 deletions(-) commit ac208af3fff563de56f4c5bdb9c46a45dae587e9 Author: YOSHIDA Hideki Date: Mon May 18 12:12:40 2026 +0200 po: update ja.po (from translationproject.org) po/ja.po | 1697 ++++++++++++++++++++++---------------------------------------- 1 file changed, 605 insertions(+), 1092 deletions(-) commit 5bd8f1f12c185cc11fa504c68bf5e65910da3c8b Author: Toomas Soome Date: Mon May 18 12:12:40 2026 +0200 po: update et.po (from translationproject.org) po/et.po | 18316 +++++++++++++++++++++++++++++-------------------------------- 1 file changed, 8600 insertions(+), 9716 deletions(-) commit 88cf85a12dea2cec0a6e8bd19e1e716ba34ef882 Author: Petr Písař Date: Mon May 18 12:12:40 2026 +0200 po: update cs.po (from translationproject.org) po/cs.po | 1756 +++++++++++++++++++++++--------------------------------------- 1 file changed, 635 insertions(+), 1121 deletions(-) commit 737d23544b8c4e190b2c601093038c0bda78ca74 Author: Karel Zak Date: Mon May 18 12:12:38 2026 +0200 po-man: merge changes po-man/ar.po | 28910 ++++++++++++++++++++----- po-man/cs.po | 658 +- po-man/de.po | 32856 +++++++++++++++++++++++------ po-man/es.po | 663 +- po-man/fr.po | 692 +- po-man/ko.po | 664 +- po-man/pl.po | 685 +- po-man/pt_BR.po | 659 +- po-man/ro.po | 33235 +++++++++++++++++++++++------ po-man/sr.po | 730 +- po-man/sv.po | 50051 +++++++++++++++++++++++++++++++------------- po-man/uk.po | 695 +- po-man/util-linux-man.pot | 646 +- 13 files changed, 116303 insertions(+), 34841 deletions(-) commit efad16710949c25ccf99efbfad431a295f19308c Author: Remus-Gabriel Chelu Date: Mon May 18 12:07:29 2026 +0200 po-man: update ro.po (from translationproject.org) po-man/ro.po | 35029 +++++++++++---------------------------------------------- 1 file changed, 6687 insertions(+), 28342 deletions(-) commit 5c6380a74dcd7ce7f4154108885771593c8a8143 Author: Karel Zak Date: Mon May 18 10:45:20 2026 +0200 readprofile: (man) clarify not designed for privilege-elevation use Add a note to the DESCRIPTION that readprofile is a diagnostic tool not intended for security-sensitive contexts (setuid, setgid, sudo). Remove the suggestion to make readprofile set-user-ID 0 from the -r option, and drop sudo from the example. (cherry picked from commit 1c8045469a7cc0bb0060185b3441a4251167e667) sys-utils/readprofile.8.adoc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 81007a550e93bb3e0c0121c3b9d78658453f02f0 Author: Karel Zak Date: Wed May 13 11:49:51 2026 +0200 write: cleanup indentation and whitespace Signed-off-by: Karel Zak (cherry picked from commit 59500b36c6ed74719e0ee3e74d86067cfc66f30e) term-utils/write.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) commit ea5e428076eace56dd516c8f121160722906b97d Author: Karel Zak Date: Wed May 13 11:22:59 2026 +0200 write: use mem2strcpy() for utmp strings The utmp fields ut_user and ut_line are fixed-size buffers not guaranteed to be null-terminated. Using strncmp(), snprintf() or memcmp() directly on these fields can read beyond the buffer content. Use mem2strcpy() to safely copy utmp fields into properly terminated local buffers before any string operations. Signed-off-by: Karel Zak (cherry picked from commit 2483e99e14a1ed24129e5255804a679c56493c25) term-utils/write.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit 52638d44983d2b7e7a89cdd20eecabeb4f7f07f4 Author: Karel Zak Date: Wed May 13 11:13:03 2026 +0200 write: always use utmp as fallback The systemd session list may not cover all terminals (e.g., screen, tmux, or old-style logins). Remove the "if systemd else utmp" pattern and always fall through to utmp when the target user or tty is not found in systemd sessions. Also make sd_get_sessions() and sd_session_get_username() failures non-fatal — silently fall through to utmp instead of calling errx(). Addresses: https://redhat.atlassian.net/browse/RHEL-157244 Signed-off-by: Karel Zak (cherry picked from commit 3d84e9af768f904660d962720c4c03735e86472b) term-utils/write.c | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit dfc912b7eae7c1b6d6327a814d9d1f458abd6f45 Author: Thomas Weißschuh Date: Tue May 12 23:21:25 2026 +0200 liblastlog2: (tests) avoid log spam In its current form this test spams the test log with some pointless noise. Redirect the output to a logfile and validate it, too. Signed-off-by: Thomas Weißschuh (cherry picked from commit 577bf6fe6b81bce7905ee56a83ec1a1ff10e205e) tests/expected/liblastlog2/y2038_ll2_read_all | 2 ++ tests/ts/liblastlog2/y2038_ll2_read_all | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) commit 78e32cc601a51fa197d8917bc275f5fd4d1fea04 Author: Karel Zak Date: Tue May 12 12:49:52 2026 +0200 script: fix "--" separator when used as option argument The commit 7268e79b added "+" to the getopt_long() options string and post-getopt "--" detection to support commands after the "--" separator. The "+" prefix stops getopt at the first non-option argument, which broke backward compatible "script file -c command" usage. The commit 70507ab9ea fixed this by pre-scanning argv for "--" before getopt and removing the "+" prefix to restore GNU getopt argument permutation. However, the pre-scan was too naive — it treated any "--" in argv as the separator, even when "--" was used as an argument to an option (e.g., -I -- or --log-in --). The value can come from a variable, e.g., script -I "$VAR" will break if $VAR is --. Note that getopt_long() behavior with "--" depends on the option type: - required_argument: "--" is consumed as the option value - optional_argument: "--" is NOT consumed, treated as end-of-options - no_argument: "--" is treated as end-of-options Without "+" getopt also permutes arguments, which means non-option arguments before "--" (like the outfile) become inaccessible after getopt sets optind past "--". The pre-scan approach is necessary to split the command part out of argv before getopt runs. Fix the pre-scan by adding ul_find_argv_separator() to optutils.h. The helper ul_is_option_with_arg() checks if a given argv entry is an option that expects its value in the next argv entry, handling both long options (via o->name) and short/bundled options (via o->val). The separator search scans backward from each "--" counting consecutive options-with-required-arg. They pair up (each consumes the next as its value), so odd count means "--" is consumed as an option argument, even count means it is the real separator. This correctly handles chained cases like --log-in --log-in -- where the second --log-in is a value for the first and "--" is the separator. Addresses: 70507ab9eaed10b8dd77b77d4ea25c11ee726bed Reported-by: Evgeny Kapun Signed-off-by: Karel Zak (cherry picked from commit 88425e66536d1a9561bb1483d016a2804f3e3a5e) include/optutils.h | 92 ++++++++++++++++++++++ term-utils/script.c | 12 ++- .../expected/script/options-dashdash-optarg-bundle | 4 + .../expected/script/options-dashdash-optarg-chain | 4 + .../script/options-dashdash-optarg-chain-even | 4 + tests/expected/script/options-dashdash-optarg-long | 4 + tests/expected/script/options-dashdash-optarg-odd | 4 + .../expected/script/options-dashdash-optarg-short | 4 + tests/expected/script/options-dashdash-separator | 4 + tests/ts/script/options | 46 +++++++++++ 10 files changed, 171 insertions(+), 7 deletions(-) commit 4d23a9de701e50cdfc54fb98be47ed40175d4be3 Author: Masatake YAMATO Date: Fri May 8 06:40:10 2026 +0900 tests: (lsfd/mkfds-udp*) make UDPLite related test cases skippable Signed-off-by: Masatake YAMATO (cherry picked from commit 98a242e556d9d68dcd4cdd3a1949878e016eddb7) tests/expected/lsfd/mkfds-udp | 12 --- tests/expected/lsfd/mkfds-udp-lite | 12 +++ tests/expected/lsfd/mkfds-udp6 | 12 --- tests/expected/lsfd/mkfds-udp6-lite | 12 +++ tests/ts/lsfd/mkfds-udp | 121 ++-------------------------- tests/ts/lsfd/mkfds-udp-lite | 30 +++++++ tests/ts/lsfd/mkfds-udp6 | 123 ++--------------------------- tests/ts/lsfd/mkfds-udp6-lite | 30 +++++++ tests/ts/lsfd/udp-common.bash | 152 ++++++++++++++++++++++++++++++++++++ 9 files changed, 246 insertions(+), 258 deletions(-) commit 33981ff8bd970b79f350d58ffd7878f0a638a929 Author: Masatake YAMATO Date: Wed May 6 18:39:13 2026 +0900 tests: (lsfd/option-inet{,-udp}) make UDPLite related test case skippable Fixes #4311 Linux 7.1-rc1 has removed UDP Lite. In the test case lsfd/option-inet, UDP Lite was must. This change moves UDPLite related test parts to a new test case lsfd/option-inet-udp and makes lsfd/option-inet-udp skippable on the platform where UDPLite is not implemented. Signed-off-by: Masatake YAMATO (cherry picked from commit 512b756cd250081bb49ea0aba24e3dcc064231f8) tests/expected/lsfd/option-inet | 52 +++++++-------- tests/expected/lsfd/option-inet-udplite | 11 ++++ tests/ts/lsfd/option-inet | 24 +++---- tests/ts/lsfd/option-inet-udplite | 113 ++++++++++++++++++++++++++++++++ 4 files changed, 154 insertions(+), 46 deletions(-) commit 32edc469cbd02ad13bd48b7d6d44dea576f21629 Author: Masatake YAMATO Date: Wed May 6 06:19:38 2026 +0900 tests: (lsfd) add a function checking the availability of UDPLite socket Signed-off-by: Masatake YAMATO (cherry picked from commit 8ba7a7761995336098055422e9ed380577a65c37) tests/helpers/test_mkfds.c | 4 ++-- tests/ts/lsfd/lsfd-functions.bash | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) commit 8bb0420765bbff5275f440becd1f6c34915cf86a Author: Masatake YAMATO Date: Fri May 8 06:21:46 2026 +0900 tests: (lsfd::mkfds-udp) fix confusion between UDP and UDPLite Signed-off-by: Masatake YAMATO (cherry picked from commit 8ce81feb552132e5b0a466411f645eb27d54f807) tests/expected/lsfd/mkfds-udp | 6 +++--- tests/ts/lsfd/mkfds-udp | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) commit 509107f4d3e81ccbd22ae97d76f4ee9643ff56de Author: Masatake YAMATO Date: Wed May 6 05:05:51 2026 +0900 ipcutils: use memset explicitly to fill bpf_attr with zero Signed-off-by: Masatake YAMATO (cherry picked from commit 3355dadf6d83c635a04eacbc7cbeb776a0c11596) sys-utils/ipcutils.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) commit 77de2526277247c3e1e42b01b21770ec28060295 Author: Masatake YAMATO Date: Wed May 6 04:37:30 2026 +0900 tests: (test_mkfds) use memset explicitly to fill bpf_attr with zero Signed-off-by: Masatake YAMATO (cherry picked from commit d144b6001f64e849a793db106faa0fb4bff00d41) tests/helpers/test_mkfds.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) commit 6a03d848f049fa1dcdd2ab8b59cf6aa46b661e13 Author: Thomas Weißschuh Date: Mon Dec 30 22:53:13 2024 +0100 ci: use GCC 15 Signed-off-by: Thomas Weißschuh (cherry picked from commit a4069f53596cd38138258c784fe06957562c59b5) .github/workflows/cibuild.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 8a1e6c230b0c80ebb8bce69b2fb326c97e3e7454 Author: Masatake YAMATO Date: Sun Apr 26 08:57:17 2026 +0900 lsfd: use memset explicitly to fill bpf_attr with zero The original code used initialize-lists for initializing variables (attr) type of union bpf_attr. However, the folloing syscalls failed with EINVAL: syscall(SYS_bpf, BPF_PROG_GET_FD_BY_ID, &attr, sizeof(attr)); syscall(SYS_bpf, BPF_MAP_GET_FD_BY_ID, &attr, sizeof(attr)); CHECK_ATTR macro of Linux might cause EINVAL: /* helper macro to check that unused fields 'union bpf_attr' are zero */ #define CHECK_ATTR(CMD) \ memchr_inv((void *) &attr->CMD##_LAST_FIELD + \ sizeof(attr->CMD##_LAST_FIELD), 0, \ sizeof(*attr) - \ offsetof(union bpf_attr, CMD##_LAST_FIELD) - \ sizeof(attr->CMD##_LAST_FIELD)) != NULL I doubt initialize-lists worked well. Signed-off-by: Masatake YAMATO (cherry picked from commit d0dca4880f2c0bd91d5cedc34d9ad9c66c8aff35) lsfd-cmd/unkn.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) commit 45fda3ea42edff88065759eb4bf4a49953b7c8b6 Author: Karel Zak Date: Mon May 11 11:36:42 2026 +0200 tests: (ipcs/limits) skip when /proc/sys/kernel is read-only The test writes to /proc/sys/kernel/shm* files which are read-only in CI containers. Skip the test when the kernel tunables are not writable. (cherry picked from commit 4b85ff08c8167975df0085d1e00a4b62459afd1e) tests/ts/ipcs/limits | 2 ++ 1 file changed, 2 insertions(+) commit 7f7471a8b87cbbc556e4b4dc725028c5ce52c06f Author: Julien Nabet Date: Sun May 10 10:25:00 2026 +0200 Remove obsolete comment since 2015 after 890e103559ac89b7a0d7a7a71f198e138650ece1 wall: do not use a temporary file. (cherry picked from commit d01439bbe22369e553ec551f109c99b05f3686a0) term-utils/wall.c | 2 -- 1 file changed, 2 deletions(-) commit 8a11d7cd3d8d27fc80d6f18e7320cacecee8132a Author: Karel Zak Date: Thu May 7 14:34:27 2026 +0200 CI: replace ntp with ntpsec The ntp package has been removed from Ubuntu repositories. Use ntpsec as a replacement to provide the sntp command needed by tests/ts/hwclock/systohc. Signed-off-by: Karel Zak (cherry picked from commit e19769bb1e70a1ea713582a69bcf7c9befa53bf0) .github/workflows/cibuild-setup-ubuntu.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1894e4b1d8a32792e778fa6c147c937427ba9aae Author: AndyLau-SOC Date: Wed May 6 20:14:31 2026 +0800 docs: clarify wipefs --force description for partition-table signatures The current description states that --force "is required in order to erase a partition-table signature on a block device", which is misleading. According to the source code (do_wipe() in wipefs.c), --force is needed for mounted filesystems and for nested partition tables on non-whole-disk devices, not for all partition tables on all block devices. Update the text to say "a nested partition-table signature on a non-whole disk device", consistent with the note earlier in the man page. Fixes #2447 (cherry picked from commit 583704fe1e89286cade521d15cb14eec5fd50985) misc-utils/wipefs.8.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 727654b2a59b1a6c4ab3000c01cd81db4a391824 Author: Christian Goeschel Ndjomouo Date: Tue May 5 09:55:22 2026 -0400 fallocate: (man) mention supported file systems for --insert-range Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 465b5547358daaae2fc743a75e5bcbfbbd56c460) sys-utils/fallocate.1.adoc | 2 ++ 1 file changed, 2 insertions(+) commit aac7ad5e5958c060f001a0358b2fa8f8e2f7036b Author: Rong Zhang Date: Sun Apr 26 04:29:57 2026 +0800 chrt: Fix confusing error messages when priority argument is required While making the priority argument optional for non-prio policies, some confusing error messages were accidentally exposed to users for cases that do need a priority argument. $ chrt true #1 chrt: invalid priority argument: 'true' $ chrt 1 #2 chrt: failed to set pid 0's policy: Operation not permitted $ sudo chrt 1 #3 chrt: no command specified $ chrt --other 1 #4 chrt: unsupported priority value for the policy: 1: see --max for valid range The error message #1 is caused by mixing `have_prio' and `need_prio' together. Therefore, it always tries to parse the first positional argument as a priority when `--pid' is not given. #2 shows that set_sched() is meaninglessly called even when too few arguments are specified. At first glance, the error message #3 seems to be correct, but it turns out to be very wrong -- the only positional argument in this case must be regarded as a command, and commit 223a502b0208 ("chrt: (man,usage) mark the priority value as optional in the synopses") also clearly stated the same in the help message and the manual. In other words, #4 should have tried to execute `1' from PATH. Fix #1 by decoupling `need_prio' from the priority parsing routine. Fix #2 by parsing the first argument as a priority only when it's not the only argument. Fix #3 and #4 by consuming optind immediately when parsing priority argument, instead of postponing it with inconsistent conditions (I have an intuition that the previous code path was vibe-coded...) Now #1 returns chrt: policy SCHED_RR requires a priority argument ... #2, #3 return chrt: no command or priority specified ... and #4 returns chrt: failed to execute 1: No such file or directory ... which are more sensible and helpful. This doesn't break existing usage patterns: $ chrt --other true $ chrt --other 0 true $ chrt --other 1 true chrt: unsupported priority value for the policy: 1: see --max for valid range $ chrt --other echo meow meow Fixes: 4c425142844d ("chrt: Allow optional priority for non‑prio policies without --pid") Signed-off-by: Rong Zhang (cherry picked from commit 13e4823791d2c828e95a0d7727a978bb42c77c94) schedutils/chrt.c | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) commit e9841b8c43b56bb89b73f6ee7d251a5e2da1689d Author: Rong Zhang Date: Sun Apr 26 04:19:39 2026 +0800 chrt: Only show current scheduling policy when pid is given The `--verbose' option is completely broken when `--pid' is not specified, as it tries to show the current scheduling policy for nothing: $ chrt --verbose --other 0 true chrt: failed to get pid -1's policy: Invalid argument Fix it by only showing the current scheduling policy if `--pid' and `--verbose' are both given. $ chrt --verbose --other 0 true pid 1549197's new scheduling policy: SCHED_OTHER pid 1549197's new scheduling priority: 0 pid 1549197's new runtime parameter: 2800000 Fixes: 13346d4d28cd ("chrt: Only display current settings when no policy is specified") Signed-off-by: Rong Zhang (cherry picked from commit e7d23092e2be4823fbfd442d2d23caebac9246a6) schedutils/chrt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 1fe485bded48e6c3f921068539988c0264f2c154 Author: Karel Zak Date: Mon May 4 14:15:45 2026 +0200 meson: check slang headers only when slang library is found The slcurses.h and slang*.h headers were detected unconditionally in the generic header check loop. When the headers existed on the system but slang was not actually used (ncurses preferred), irqtop and cfdisk would include slcurses.h instead of ncurses.h, causing build failures for ncurses-specific functions like vw_printw() and resizeterm(). Move slang header checks after slang library detection, guarded by lib_slang.found(), matching the autotools behavior where these headers are only checked with --with-slang. Signed-off-by: Karel Zak (cherry picked from commit adebde389801d2f7dc810c7c8155cc9855d18ee2) meson.build | 6 ++++++ 1 file changed, 6 insertions(+) commit f6988391fcb81ee50fdff6e6ea1463d424b3a0de Author: Karel Zak Date: Mon May 4 14:04:34 2026 +0200 meson: rename logindefs_c to lib_common_logindefs Rename the logindefs static library variable from logindefs_c to lib_common_logindefs for consistency with lib_common_shells and the autotools libcommon_logindefs.la naming. Signed-off-by: Karel Zak (cherry picked from commit d2c5798b029c3e78800bdf7b5c2f7504c3eebbc9) lib/meson.build | 2 +- meson.build | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) commit 362a9da66a44c68eeb9964bb488af80224a1437c Author: Karel Zak Date: Mon May 4 14:02:39 2026 +0200 meson: split shells.c out of lib_common into lib_common_shells Remove shells.c from lib_common_sources and build it as a separate static library (lib_common_shells) with lib_econf dependency. Link lib_common_shells only into binaries that use the econf-dependent shell enumeration functions (is_known_shell, print_shells, open_etc_shells): chsh, su, runuser, login. Other binaries that only need ul_default_shell() get it from lib_common via default_shell.c and don't need libeconf. Signed-off-by: Karel Zak (cherry picked from commit d1c228a6c3a060c5e9dda0ed141ecde1638696a6) lib/meson.build | 8 +++++++- meson.build | 11 ++++------- 2 files changed, 11 insertions(+), 8 deletions(-) commit 880e714295d0f967b64d0d8b90bac190281c8cfa Author: Karel Zak Date: Mon May 4 13:59:47 2026 +0200 build-sys: drop libcommon_shells from binaries that only need ul_default_shell Now that ul_default_shell() lives in libcommon, binaries that only call this function no longer need to link against libcommon_shells (and transitively libeconf). Remove libcommon_shells linkage from: flock, unshare, nsenter, script, scriptlive, more. Keep libcommon_shells for: login, chsh, su, runuser — these use is_known_shell(), print_shells() or open_etc_shells() which depend on libeconf. Signed-off-by: Karel Zak (cherry picked from commit 30717e617468ba76c5a064f13efb29f6304c5b4a) sys-utils/Makemodule.am | 6 +++--- term-utils/Makemodule.am | 4 ++-- text-utils/Makemodule.am | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) commit 04a2b94740ab9b793dd403de4f16057a10348295 Author: Karel Zak Date: Mon May 4 13:57:41 2026 +0200 lib: split ul_default_shell() from shells.c into default_shell.c Move ul_default_shell() and UL_SHELL_* flags into a new lib/default_shell.c and include/default_shell.h pair, and add the new file to libcommon (autotools and meson). ul_default_shell() has no dependency on libeconf -- it simply checks $SHELL, passwd, and falls back to _PATH_BSHELL. Separating it from shells.c (which depends on libeconf for /etc/shells enumeration) allows binaries that only need the default shell lookup (flock, script, scriptlive, more, exec_shell.c users) to avoid unnecessary libeconf linkage. Update callers that only use ul_default_shell() to include default_shell.h instead of shells.h. Signed-off-by: Karel Zak (cherry picked from commit 97cd9a70e7bf20a967cc25b1b577e23ebe472628) include/Makemodule.am | 1 + include/default_shell.h | 14 ++++++++++++++ include/shells.h | 10 +--------- lib/Makemodule.am | 1 + lib/default_shell.c | 28 ++++++++++++++++++++++++++++ lib/exec_shell.c | 2 +- lib/meson.build | 1 + lib/shells.c | 21 --------------------- sys-utils/flock.c | 2 +- term-utils/script.c | 2 +- term-utils/scriptlive.c | 2 +- text-utils/more.c | 2 +- 12 files changed, 51 insertions(+), 35 deletions(-) commit b58bbebf84821b0aca932419b4a7bd401c36eeb5 Author: Stanislav Brabec Date: Mon May 4 03:50:59 2026 +0200 Link against libcommon_logindefs.la and libcommon_shells.la Instead of linking with logindefs.c and shells.c library files, link against libcommon_logindefs.la and libcommon_shells.la and handle possibly needed econf libs there. Signed-off-by: Stanislav Brabec (cherry picked from commit e43dd6833c20b561739cf6215261eb54cba4846c) lib/Makemodule.am | 8 ++++++++ login-utils/Makemodule.am | 45 ++++++++++++--------------------------------- sys-utils/Makemodule.am | 8 ++------ term-utils/Makemodule.am | 8 ++------ 4 files changed, 24 insertions(+), 45 deletions(-) commit acc7f2c10073b0003eab335739612b9b8bd9a83a Author: Stanislav Brabec Date: Thu Apr 30 05:24:41 2026 +0200 Fix build with libeconf Building with libeconf fails. Fix the build: - Add missing includes. - Make open_etc_shells() public, as required by login.c. - shells.c requires linking against libeconf. To prevent linking of all binaries with libeconf, split shells.c out of libcommon to libcommon_shells and use it only if it is really needed. Signed-off-by: Stanislav Brabec (cherry picked from commit 9447bc4f72ac5634dcfd78ea877286279b050369) include/shells.h | 8 ++++++++ lib/Makemodule.am | 11 ++++++++++- lib/shells.c | 2 +- login-utils/Makemodule.am | 5 +---- login-utils/login.c | 4 ++++ sys-utils/Makemodule.am | 6 +++--- term-utils/Makemodule.am | 4 ++-- text-utils/Makemodule.am | 2 +- 8 files changed, 30 insertions(+), 12 deletions(-) commit aef90619669de60bdcd53d95d5442b2172081cd8 Author: Thomas Weißschuh Date: Wed Apr 22 23:29:00 2026 +0200 meson: respect build-dmesg for test_dmesg If dmesg can not be built, test_dmesg can't be either. Signed-off-by: Thomas Weißschuh (cherry picked from commit 1200b728093afe05941ffbb3344a087ba94f97bb) meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit d5eb6cafa9b571f1579aadd1265de14e5491d83f Author: Karel Zak Date: Wed May 6 11:58:50 2026 +0200 more: align MORE_SHELL_LINES semantics with less(1) Change MORE_SHELL_LINES to subtract lines from lines_per_screen (like LESS_SHELL_LINES in less(1)) rather than setting the absolute number of lines per screenful. The block is moved after lines_per_screen is finalized (either from the default lines_per_page - 1 or from an explicit -n/--lines), so it correctly adjusts both cases. Values that are zero or would exceed lines_per_screen are silently ignored. Addresses: https://github.com/util-linux/util-linux/issues/3476 Co-authored-by: Christian Goeschel Ndjomouo Signed-off-by: Karel Zak (cherry picked from commit 390c79cb2695f0e75cc6efbc56261fad1e37d149) text-utils/more.1.adoc | 2 +- text-utils/more.c | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) commit 60a120becd02b79c0e346b5d1bcebf18e3b26a6a Author: Christian Goeschel Ndjomouo Date: Sat Apr 25 17:01:06 2026 -0400 column: fix missing out-of-bounds check in table reordering When the --table-order option is used we allocate memory on the heap for the actual amount of columns we receive from the input, and later store the wanted column struct objects, specified in the --table-order list, in that memory space. We do this by iterating over the order list and incrementing the heap pointer with a counter variable. This leads to a buffer overflow when the amount of input columns is smaller than the amount of columns specified in the table order list. To prevent this we iterate over the order list for as long as the counter is smaller than the number of input columns. Closes: #4281 Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 6f585e902be542fc36e4e7643d4fca39e4f2fbe9) text-utils/column.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) commit 2525f6c7ca812b266bfb5e77d55e864cf0ff47a9 Author: Thomas Weißschuh Date: Wed Apr 29 00:08:09 2026 +0200 libsmartcols: drop superfluous call yo yylex_init() The lexer is already initialized with yylex_init_extra(), making the call to yylex_init() superfluous. Furthermore this is leaking memory. Signed-off-by: Thomas Weißschuh (cherry picked from commit 08087a7204fd1e8317b2b9194d7e37b966d86996) libsmartcols/src/filter.c | 1 - 1 file changed, 1 deletion(-) commit 035a550adcd1deb38b8a4a4f62dc4c3eba150e51 Author: Thomas Weißschuh Date: Tue Apr 28 19:38:46 2026 +0200 libsmartcols: (tests) fix failure reporting in filter test The pipeline executes the calls to ts_init_subtest and ts_finalize_subtest in a subshell. This breaks their functionality and test failures are not reported properly. Signed-off-by: Thomas Weißschuh (cherry picked from commit e81fabf5d9eeec1e5fba77bbab01b6cadaf0ff0b) tests/ts/libsmartcols/filter | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) commit 298b3a4845daa169b325199195c2a835e82a9c91 Author: Thomas Weißschuh Date: Tue Apr 28 19:38:08 2026 +0200 libsmartcols: (tests) fix filter test name Signed-off-by: Thomas Weißschuh (cherry picked from commit fbffd94c7da65834aa4399d3de9ee5f368e4e7cb) tests/ts/libsmartcols/filter | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0af3712d4eb8da18b3e0d417623bac634da7bf80 Author: Karel Zak Date: Tue Apr 28 14:51:14 2026 +0200 cfdisk: fix memory leak of original_layout table The original_layout table, allocated via fdisk_get_partitions() to track the on-disk partition layout, was never freed on exit. Add the missing fdisk_unref_table() call. Signed-off-by: Karel Zak (cherry picked from commit 555d8123c2b83ad5d0047fc87a14ad6d4b7c03cb) disk-utils/cfdisk.c | 1 + 1 file changed, 1 insertion(+) commit f2d7607d069148a1987aac513f7f0f185b8439dc Author: Karel Zak Date: Tue Apr 28 13:55:45 2026 +0200 last: fix phantom detection for unset loginuid and X11 sessions Don't mark a session as phantom when /proc/pid/loginuid exists but has not been set by pam_loginuid.so (contains the kernel's unset sentinel value 4294967295). Skip the /dev/ tty stat() check when the utline starts with ':' (traditional X11 session registration by xdm/sessreg). Based on a patch by glangshaw. Fixes: https://github.com/util-linux/util-linux/issues/4295 Signed-off-by: Karel Zak (cherry picked from commit 38c4988599b30be9ce85bdaccc62c080a8c55936) include/c.h | 4 ++++ login-utils/last.c | 14 ++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) commit 8ecf89e2e424462e65678d25df193e940f253a45 Author: Thomas Weißschuh Date: Sun Apr 12 08:08:46 2026 +0200 libsmartcols: Ignore -Wsign-compare in filter-scanner.l The code generated from filter-scanner.l generates a sign comparision warning on macOS. There is nothing we can do about that, so ignore the warning similar to other generated code. Signed-off-by: Thomas Weißschuh (cherry picked from commit 157d4c1b1266169057596f3e21309b02fc1a685f) libsmartcols/src/filter-scanner.l | 7 +++++++ 1 file changed, 7 insertions(+) commit 6efd90406178b5ce433da8d05f97f96fa3c65147 Author: Karel Zak Date: Mon Apr 27 12:48:23 2026 +0200 tools/git-tp-sync: update po4a.cfg language list on sync Signed-off-by: Karel Zak (cherry picked from commit a14738694ec36edc054b137c56bce135e5c41529) tools/git-tp-sync | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 3673a680f231fb669f57525c85d054563b3d8d88 Author: WanBingjiang Date: Mon Apr 27 14:25:54 2026 +0800 bits: use getline() to avoid stdin input truncation Signed-off-by: WanBingjiang (cherry picked from commit d7badc03dd8910683421ae9b9209249c24320852) text-utils/bits.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit 2970d34f6ea222c62859b6574a81f77fc21f9863 Author: Tobias Stoeckmann Date: Wed Apr 22 21:16:19 2026 +0200 mkfs.cramfs: Consider -i only once If multiple files are specified through -i, all sizes are added to estimated filesystem size, yet only the last given file will be added. Increase fslen_ub only once. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 6e77a85bdb5db322ae29a2f3ac10379801684cf9) disk-utils/mkfs.cramfs.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) commit 33f50f888d307cf06518b941144e96c57857f270 Author: Tobias Stoeckmann Date: Wed Apr 22 21:14:45 2026 +0200 mkfs.cramfs: Add -p padding only once If -p is supplied multiple times, the estimated filesystem size is increased multiple times as well, even though padding will happen only once. Increase fslen_ub only once. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 07114372f963fe4dc388bf4f6d3d7cf498d2c27f) disk-utils/mkfs.cramfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 97cbb98bd86b759101d57cd425411ffdca8dc9d2 Author: WanBingjiang Date: Mon Mar 30 16:28:24 2026 +0800 liblastlog2: wait on busy SQLite connections Avoiding 'SQL error: database is locked' when lastlog2 writes lastlog2 databese. Addresses: https://github.com/util-linux/util-linux/issues/4157 Signed-off-by: WanBingjiang (cherry picked from commit fff8c59c75355d365a69f86719e7bd7818c1daf4) liblastlog2/src/lastlog2.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) commit c157457aca558e18db3e1425fb7cb5a343615093 Author: koraynilay Date: Sun Apr 19 22:48:09 2026 +0200 scriptreplay(man): Add right arrow documentation This feature was added with PR #3015 (and issue #2999), but it was missing from the docs/--help Signed-off-by: koraynilay (cherry picked from commit 91efdeefe2b3aa69316eaa06789d9d0d30c534e3) term-utils/scriptreplay.1.adoc | 5 +++-- term-utils/scriptreplay.c | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) commit e9bd89e3073151cfa3f97238d8017dff9e4935b2 Author: Christian Goeschel Ndjomouo Date: Tue Apr 21 15:01:01 2026 -0400 tests/functions.sh: consider '+' for metadata in kernel version parsing Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit e66a38b448bfc3d5c4448bc5f3235a2e230cd06a) tests/functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 135908b1d957269c6f29607e2f8bd19449a7a0b1 Author: Tobias Stoeckmann Date: Sat Apr 18 17:31:22 2026 +0200 pidfd-utils: Fix pidfd_get_inode declaration The pidfd_get_inode function returns a uint64_t, not an ino_t. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 38941a6814d56f8fb0f4d46756908ce17513a4c0) include/pidfd-utils.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 9da992f238a746d6cde27f6e042a0fb458825010 Author: Tobias Stoeckmann Date: Sat Apr 18 17:21:48 2026 +0200 mkfs.cramfs: Improve file size check Check st.st_size (off_t) for actual file size instead of the possibly already truncated entry->size (unsigned int) value. Otherwise files larger than 4 GB might be silently truncated. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 9f14002af76ce24baf43d71ff642fda37271940e) disk-utils/mkfs.cramfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d93235a096e6cb781a863fc42623277a487c0d5c Author: Christian Goeschel Ndjomouo Date: Thu Apr 16 00:18:59 2026 -0400 flock: re-enable the initial shell selection logic Commit 6651ae5 added /etc/passwd to the list of shells to choose from before falling back to _PATH_BSHELL. This introduced a regression as some tools dont expect this behavior and assume that unsetting SHELLS is enough. To re-establish the old behavior we can pass the UL_SHELL_NOPWD flag to the ul_default_shell() helper to ignore shells in /etc/passwd. Addresses: #4242 Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 945c664e019e8b4e7a2d574962521e3e747a78ec) sys-utils/flock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 62c434c9ca7a46fce74017136b5d1a72092e907c Author: Christian Goeschel Ndjomouo Date: Wed Apr 15 08:17:40 2026 -0400 build: (copyfilerange) include syscall header check for fallback Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 16afd220272c66459d06772ac2aaaaf293b640a2) meson.build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 0145e486101f95128544b730b21c040e7938d926 Author: Christian Goeschel Ndjomouo Date: Thu Apr 9 11:08:41 2026 -0400 include: (fileutils.h) add fallback for the copy_file_range syscall Closes: #4212 Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit d6986d4d0c5e6064644cd87c09ee668c9393e8a5) include/fileutils.h | 10 ++++++++++ misc-utils/copyfilerange.c | 1 + 2 files changed, 11 insertions(+) commit eacc7a5797b9f83c59fd884a3482d7b59e654bc2 Author: Tobias Stoeckmann Date: Thu Apr 9 22:34:39 2026 +0200 autotools: Fix setpriv build with econf Link setpriv with libeconf if used due to its usage in lib/logindefs.c. Closes: #4217 Signed-off-by: Tobias Stoeckmann (cherry picked from commit 08af7fd3638c2f449a214661bdddcb8b5ad7f4fb) sys-utils/Makemodule.am | 3 +++ 1 file changed, 3 insertions(+) commit 01c69d4052bee30a64c5168d33b9e1ff82847af1 Author: Karel Zak Date: Wed Apr 15 13:27:06 2026 +0200 lib/pwdutils: fix compiler warning [-Werror=maybe-uninitialized] Signed-off-by: Karel Zak (cherry picked from commit 56fb95ae916510338fbaf7d93de1b9b4ab54b193) lib/pwdutils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9a064bb85dc4ec744d38b840107d2c966a4c7276 Author: Tobias Stoeckmann Date: Sun Apr 12 13:22:13 2026 +0200 irqtop/lsirq: Handle EOF in get_irqinfo If an empty file is passed to get_irqinfo, getline fails without setting errno because EOF is not an error condition, even though -1 is returned. Suppress error message but keep the regular error handling. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 2e3b07d28b2843c2d6b0c4d91e3e2e7aa607f27c) sys-utils/irq-common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 6c5f20f3e124f94f0d5a588dc5317e1098813f4f Author: Tobias Stoeckmann Date: Sun Apr 12 13:20:35 2026 +0200 newgrp: Correctly handle getline error If getline fails, errno might be overridden by isatty, leading a wrong error message. Also, getline returns -1 on EOF. In which case errno is not set. Use a custom error message and still handle this as an error condition. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 663215b203acd1304432e73dd3c231df0418a314) login-utils/newgrp.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 5cf2441cacf4171cf52959fc96a9e3baa3106a6d Author: Thomas Weißschuh Date: Sun Apr 12 08:10:26 2026 +0200 chrt: pass correct integer types to printf The printf format %ju expects an 'uintmax_t'. Cast the values to make sure the correct type is passed. Signed-off-by: Thomas Weißschuh (cherry picked from commit 0402f653122357a52a5fa8bbde424922b55ec6b0) schedutils/chrt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit b72e53a9093e491424fd7b1ea69008eaadeefe31 Author: Thomas Weißschuh Date: Sun Apr 12 08:09:24 2026 +0200 hardlink: avoid format string error for dev_t The real integer type of dev_t is unspecified. Cast the value to make sure it matches the format specifier. Signed-off-by: Thomas Weißschuh (cherry picked from commit dde10e10f768995ff4ea222d5a51574da5f5c125) misc-utils/hardlink.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e3c54c818c008d77afd8d9694c837d5ed171192 Author: Thomas Weißschuh Date: Sun Apr 12 08:08:37 2026 +0200 strutils: fix printf formats Use the correct printf format placeholders for uint64_t and int64_t. Signed-off-by: Thomas Weißschuh (cherry picked from commit a8612e465f4f4720d6b5d68f9b73c02deda0d0db) lib/strutils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b17ddc2317a5ccae16b1bfc140184526802e0acc Author: Thomas Weißschuh Date: Sun Apr 12 08:01:43 2026 +0200 ci: run 'make checkusage' only for autotools build The CHECK phase may be built during a meson build, but 'make checkusage' requires an autotools build. Signed-off-by: Thomas Weißschuh (cherry picked from commit 223fcc469a9627dc893cea931eb49527f500c8c3) .github/workflows/cibuild.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 40569c4475c6b56a394d5a6a8e8e456d35dab585 Author: Tobias Stoeckmann Date: Thu Apr 9 17:23:41 2026 +0200 build: Fix --disable-copyfilerange The --disable-copyfilerange flag is overridden by BUILD_INIT, because it's given a second argument. Remove it to make copyfilerange an option tool (built by default) as intended. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 4a90208665ffab74a00baac8583144b5d27c9514) configure.ac | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 1489a3c8828bd3fe952c88d69b5ab50f451d9e63 Author: Leonid Znamenok Date: Thu Apr 9 16:39:40 2026 +0400 fdisk: fix trailing whitespace in user reply from readline completion Readline appends a space after tab-completed filenames, which becomes part of the string returned by get_user_reply(). This causes "No such file or directory" when loading a script file via the 'I' command. Addresses: https://github.com/util-linux/util-linux/issues/2838 (cherry picked from commit 77e401e5efdfe49d801bfa9ed4b7708e72e34cb7) disk-utils/fdisk.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) commit 95a327043ab8e83c9332b22acca3dc6b02c405fa Author: Karel Zak Date: Thu Apr 9 15:08:30 2026 +0200 lib/pidutils, lib/pidfd-utils: use _() instead of N_() in err() calls N_() only marks a string for translation extraction but does not translate at runtime. Use _() to ensure the error messages are actually translated when displayed. Signed-off-by: Karel Zak (cherry picked from commit 92e14a10acd0a4e1793db41fc51a0316bed4e20b) lib/pidfd-utils.c | 4 ++-- lib/pidutils.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 4e869f8143c62be376d2925f83ebd6dd987fe510 Author: Karel Zak Date: Thu Apr 9 10:16:30 2026 +0200 irqtop: add vw_printw() fallback for slang builds The vw_printw() function and OK macro are ncurses-specific and not available in slang's curses compatibility layer. This causes build failures when configuring with --with-slang. Add configure/meson checks for vw_printw() availability and provide a portable fallback implementation using vsnprintf() and waddstr() when the function is not available. Addresses: https://github.com/util-linux/util-linux/issues/4177 Signed-off-by: Karel Zak (cherry picked from commit e67a2ea47738b76e5cb9ccfe8ce28e18e028d755) configure.ac | 4 ++++ meson.build | 2 ++ sys-utils/irqtop.c | 15 +++++++++++++++ 3 files changed, 21 insertions(+) commit fc13e7ac27bb94d67e46f6656d6073326b3d6c24 Author: Alessandro Ratti Date: Wed Apr 8 18:25:07 2026 +0200 eject: tolerate ILLEGAL REQUEST on ALLOW_MEDIUM_REMOVAL Some USB devices using the UAS driver do not support the SCSI ALLOW_MEDIUM_REMOVAL command and return ILLEGAL REQUEST (sense key 0x05). Previously, eject_scsi() treated any non-zero driver_status as fatal, aborting before attempting START_STOP. Now, when the device reports DRIVER_SENSE with sense key ILLEGAL REQUEST, we continue to the START_STOP eject commands instead of bailing out. Addresses: https://github.com/util-linux/util-linux/issues/4125 Signed-off-by: Alessandro Ratti (cherry picked from commit 910c6f066534db3a531bca5f077b34adbc350c92) sys-utils/eject.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) commit 46acffe24297f783e376c3d1fba02005eba5b906 Author: Tobias Stoeckmann Date: Wed Apr 8 21:57:46 2026 +0200 libblkid: Fix typo in probe_zfs It should be swap_endian, not swab_endian. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 60b86babea25a748925a73063a797fa12ca082f2) libblkid/src/superblocks/zfs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit fc4aad1ef189385b79332f8ffac6d6e645718111 Author: Tobias Stoeckmann Date: Wed Apr 8 21:56:03 2026 +0200 libblkid: Fix type access in zfs_extract_guid_name Check if enough space is left for a 32 bit value before parsing it. This is not a technical out of boundary issue, because due to alignment, enough bytes are available. Yet, perform a proper logic check here. Signed-off-by: Tobias Stoeckmann (cherry picked from commit f16a0cf2f82c0703ef5b472f8714668edfd21eb9) libblkid/src/superblocks/zfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit aa789e7bc0f494c545a2e8cd436430289d130deb Author: Tobias Stoeckmann Date: Wed Apr 8 21:53:12 2026 +0200 libblkid: Fix debug OOB read in zfs_process_value It is possible to trigger an out of boundary read in zfs_process_value if debugging is activated. The debug message erroneously uses %*s (field width) instead of %.*s (precision), which might lead to string output going past the boundary of memory mapped buffer. Fix this with proper casting: The value is always smaller than VDEV_PHYS_SIZE (112 KB) at this stage, easily fitting into int. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 98e74106b7ed5e2b71538cb9310ab69b22704dea) libblkid/src/superblocks/zfs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 59a6d76fcdc9c71e773476679a471ed369c81155 Author: Tobias Stoeckmann Date: Wed Apr 8 21:48:13 2026 +0200 libblkid: Fix parse_dev debug output A parse_dev debug line erroneously uses %*s instead of %.*s. While this does not lead to out of boundary access because the line is properly NUL-escaped by fgets, the output is incorrect. Simply replace the ending char with NUL for debug, since the line is modified a few lines below anyway. This offers more safety for refactoring in the future if fgets is ever replaced with getline, possibly leading to lines longer than INT_MAX. Signed-off-by: Tobias Stoeckmann (cherry picked from commit d799ef7ef34a96d8fe356362c7139b331e197dc6) libblkid/src/read.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit e007dede7fd2eef0f67c10444890175910af96e8 Author: Tobias Stoeckmann Date: Wed Apr 8 21:25:55 2026 +0200 po-man/po4a: Add missing manual pages Two manual pages recently linked into the build lacked translation entries, leading to asciidoctor warnings. Fix these by adding them: ``` unconfigured in /home/runner/work/util-linux/util-linux/po-man/po4a.cfg: ../liblastlog2/man/ll2_new_context.3.adoc unconfigured in /home/runner/work/util-linux/util-linux/po-man/po4a.cfg: ../liblastlog2/man/ll2_unref_context.3.adoc ``` Signed-off-by: Tobias Stoeckmann (cherry picked from commit 09778c0049418d555088efb241760dfcbaf1315b) po-man/po4a.cfg | 2 ++ 1 file changed, 2 insertions(+) commit ab9e185ca85b5d7ea5dbcb21a3264a31e7c93285 Author: Tobias Stoeckmann Date: Wed Apr 8 21:24:20 2026 +0200 fsck.minix(man): Fix asciidoctor table Building with asciidoctor 2.0.26 triggers an error message. Even though the build succeeds, let's fix the table by adding whitespaces: ``` asciidoctor: ERROR: fsck.minix.8.adoc: line 31: dropping cells from incomplete row detected end of table ``` Signed-off-by: Tobias Stoeckmann (cherry picked from commit 2d9f5e373e8dcabd40b702751fabf243ce8113c5) disk-utils/fsck.minix.8.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 2eb04f1c9cd6deccbec1b39200fd9b40beca6ccb Author: silentcreek Date: Sat Apr 4 21:26:01 2026 +0000 libblkid: Ignore secondary LUKS2 header in blkid_do_safeprobe() The secondary LUKS2 header can match file data content on other filesystems (e.g. an image file of a LUKS2 device stored on XFS whose data blocks happen to land at device offsets where blkid looks for the secondary LUKS2 header). This causes blkid to report a crypto_LUKS superblock instead of the real filesystem. Add a new flag BLKID_PROBE_FL_SAFEPROBE and skip scanning for the secondary LUKS2 header in blkid_do_safeprobe(). The secondary LUKS2 header is only important for wipefs which uses a promiscuous probe. Fixes: #4170 Fixes: 8bee1a2 Signed-off-by: Timo Sigurdsson -- v2: Fix conflict with BLKID_FL_TINY_DEV flag v3: Use pr->prob_flags instead of pr->flags v4: Use original mask again as the use prob_flags resolves the conflict (cherry picked from commit 3e60c1fe124dccd4e04d258ed7ff23f2d3ff4931) libblkid/src/blkidP.h | 1 + libblkid/src/probe.c | 1 + libblkid/src/superblocks/luks.c | 19 +++++++++++-------- 3 files changed, 13 insertions(+), 8 deletions(-) commit 3d1da64181d13f69014687ab48c3141dbd69f2dd Author: Tobias Stoeckmann Date: Tue Apr 7 19:53:09 2026 +0200 login-utils/auth: Drop pam_setcred The credentials are not needed right before pam_end. Drop the call, which avoids the requirement of cleaning them up again. While at it, supply the last retcode into pam_end, even though it's always 0 anyway. Signed-off-by: Tobias Stoeckmann (cherry picked from commit fa97b45aa2680e4e2f955cf4805a76146b7b46a3) login-utils/auth.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) commit e2d444efc7ad82e95f615fcbb159f6ae35f276e7 Author: Tobias Stoeckmann Date: Fri Apr 3 09:40:24 2026 +0200 su: Clean up PAM resources on all error paths In most cases, PAM resources are already cleaned up in error paths. Some exceptions exist though. Signed-off-by: Tobias Stoeckmann (cherry picked from commit ff376bb595e803b7444de4dcfb6b4f4f4409ca38) login-utils/login.c | 2 +- login-utils/su-common.c | 25 ++++++++++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) commit 9f04639421a0d5bd3176425504d8211c6f240ad3 Author: Tobias Stoeckmann Date: Fri Apr 3 09:38:43 2026 +0200 login: Clean up PAM resources on error path If PAM_REINITIALIZEE_CRED fails at this point, PAM_ESTABLISH_CRED succeeded before. Clean up credentials with PAM_DELETE_CRED in this case just to be sure. Signed-off-by: Tobias Stoeckmann (cherry picked from commit d1a620f96bafc31b946d8d694aa0c5eeb6a2e4f0) login-utils/login.c | 1 + 1 file changed, 1 insertion(+) commit b6a4bc01d28063f36f02d53b8c591495effc9138 Author: Aleksi Hannula Date: Tue Apr 7 14:52:16 2026 +0300 nsenter: Fix AT_HANDLE_FID on musl Signed-off-by: Aleksi Hannula (cherry picked from commit 5452239f6e69d2d3aaa427d2d2253247cfb7cb7b) sys-utils/nsenter.c | 3 +++ 1 file changed, 3 insertions(+) commit faa215b2b8a9f3008e6eb2f063a32740684e7de5 Author: Tobias Stoeckmann Date: Tue Apr 7 20:33:30 2026 +0200 agetty: Always call chdir after chroot Since chroot only changes the root directory but not current working directory, change the current working directory as well. This rebases all possible future relative paths into the chroot environment as well. Signed-off-by: Tobias Stoeckmann (cherry picked from commit e966f2e93c1c4e4b43e34ae1bfdebe728efb04f8) term-utils/agetty.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) commit 002b4d9de3ddaf5122acf1b93cf46297acaa9326 Author: Karel Zak Date: Tue Apr 7 15:25:17 2026 +0200 script: fix command and command_norm memory leaks Always own ctl.command by using xstrdup() for the -c optarg path (the -- path already allocates via ul_strv_join), and free both ctl.command and ctl.command_norm at exit. Signed-off-by: Karel Zak (cherry picked from commit 2f1c12a49500ca7ed9c3d5e80664c1622925456b) term-utils/script.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) commit de8d0d75443f496a417e558c66080ed2611150ce Author: Karel Zak Date: Tue Apr 7 15:20:04 2026 +0200 script: fix backward compatibility for options after non-option args The commit 7268e79b added "+" to the getopt_long() options string to support the "--" separator for specifying commands. The "+" prefix makes getopt stop processing at the first non-option argument, which breaks the traditional "script file -c command" usage. Fix this by pre-scanning argv for "--" before getopt, separating the command arguments, and removing the "+" prefix to restore GNU getopt argument permutation. Addresses: 7268e79bc5365034a6e5b38ac5d9bf635e2dafc2 Reported-by: Chris Hofstaedtler Signed-off-by: Karel Zak (cherry picked from commit 70507ab9eaed10b8dd77b77d4ea25c11ee726bed) term-utils/script.c | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) commit 0c6737723d5296e960942ae6f0a80f3fd768866d Author: Christian Goeschel Ndjomouo Date: Mon Apr 6 17:07:33 2026 -0400 lib: (cpuset.c) dont calculate allocation size for 0 ncpus If ncpus is not checked against the value 0, subsequent macros CPU_ALLOC_SIZE and cpuset_nbits() will return garbage (0), which can cause issues when memory has to be allocated or initialized in callers where the size is assumed to be > 0. So let us return NULL for 0 ncpus. Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 77df1a69f31bb845546acb229c11f8aaf71d36d8) lib/cpuset.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 4f221dcd77da202b79ed217b9003fe98c1d3c820 Author: Karel Zak Date: Tue Apr 7 14:46:06 2026 +0200 libcommon: move pidfd-utils.c to Linux-only sources The pidfd-utils.c uses Linux-specific APIs (pidfd_open, statx, etc.) and all its consumers are Linux-only tools. Move it under the LINUX guard in both meson and autotools build systems. Signed-off-by: Karel Zak (cherry picked from commit afdade4a3d8e4e6070343c5576470c575719b81f) lib/Makemodule.am | 4 ++-- lib/meson.build | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) commit 99ec35434a684d4c2801f63dedef44eea7d5c661 Author: Christian Goeschel Ndjomouo Date: Mon Apr 6 17:42:17 2026 -0400 tests: (bits) add --width tests for invalid values Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 7f870e6df5f024ae96a8396dd556aa78a85a1606) tests/expected/bits/bits-width-greater-128KB.err | 1 + tests/expected/bits/bits-width-zero.err | 1 + tests/helpers/test_strerror.c | 2 ++ tests/ts/bits/bits | 13 +++++++++++-- 4 files changed, 15 insertions(+), 2 deletions(-) commit e92cd5ce369d15a9ed9b103b58ea509649c0f5d4 Author: Christian Goeschel Ndjomouo Date: Mon Apr 6 17:15:20 2026 -0400 bits: prevent unsigned integer underflow and long-lived loop If 0 is allowed for --width it will culminate to a wraparound due to an unsigned integer underflow when a size_t for-loop control variable, namely 'n', is setup. n is the result of cpuset_nbits(size) - 1, where size is set by cpuset_alloc() which was called with 0 (width) for the @ncpus parameter that will make it so that @size remains 0 as the calculated memory allocation size yields zero as well. Therefore the sum for 'n' will be -1 that wraps around to UINT_MAX and end creates a long-lived for loop. Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 0c0040b83407d5d9f37959ae2b8a0fa76e504052) text-utils/bits.c | 3 +++ 1 file changed, 3 insertions(+) commit 8602f88b77f1fd201f69add28c40f8100f87f489 Author: Karel Zak Date: Tue Apr 7 13:49:02 2026 +0200 write, mesg: add S_ISCHR() check for terminal device paths Verify that the target path is a character device before proceeding. This hardens both utilities against symlink-to-regular-file attacks as a defense-in-depth measure. Note that the TOCTOU race condition between stat() and freopen()/open() is only theoretical -- on modern Linux systems /dev/pts/ is a kernel-managed devpts filesystem where unprivileged users cannot create or replace entries, and the setgid tty privilege only grants write access to terminal devices, not to arbitrary files. (cherry picked from commit a0fe243b9e5ecbfd19bc1fb88d6c362878a6aff0) term-utils/mesg.c | 4 ++++ term-utils/write.c | 5 +++++ 2 files changed, 9 insertions(+) commit 775729884a3945a53df33e0d3ff2ba263b96b59e Author: Johannes Wüller Date: Sat Apr 4 20:03:06 2026 +0200 mkswap: Fix --file chmod(2) check when file exists The documentation claims that `--size` will resize the `--file`, but it ends up failing like this: # mkswap --file /swapfile --size 4G Setting up swapspace version 1, size = 4 GiB (4294963200 bytes) no label, UUID=1523588e-412a-4f25-8fac-aeaf638101aa # mkswap --file /swapfile --size 4G mkswap: cannot set permissions on swap file /swapfile: Success There seems to have been a typo in the chmod(2) return value comparison. It checked for `< 9` rather than `< 0`, which would usually indicate failure. After the fix: # mkswap --file /swapfile --size 4G Setting up swapspace version 1, size = 4 GiB (4294963200 bytes) no label, UUID=6be7c450-761c-442d-8d9a-3e8cd93506b5 # mkswap --file /swapfile --size 4G mkswap: /swapfile: warning: wiping old swap signature. Setting up swapspace version 1, size = 4 GiB (4294963200 bytes) no label, UUID=617a793e-84b1-471d-96c5-c099f8b157db The operation no longer fails, as validated by the added test. (cherry picked from commit 6d87ff51568c017a6d08043d554bf0ea8dee5457) disk-utils/mkswap.c | 2 +- tests/ts/mkswap/mkswap | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) commit 9b726cee30967a4082cbfec6fe8c39b3132c6362 Author: Christian Goeschel Ndjomouo Date: Sun Apr 5 15:14:07 2026 -0400 chrt: (man) explain which kernel config options are needed for SCHED_EXT On systems running kernel version 6.12+ it is still possible that the syscall to set SCHED_EXT fails with EINVAL, this can happen when certain kernel configuration options have not been set. The list of required options can be found here: https://docs.kernel.org/scheduler/sched-ext.html#switching-to-and-from-sched-ext Let's document this in the man page to give users a heads up. Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 895ddbf09ea94e9229dbe733f86fb0deb747ebcd) schedutils/chrt.1.adoc | 1 + 1 file changed, 1 insertion(+) commit ca28a7a235a340c4b4b26e10994bd8aa6c93ac30 Author: Christian Goeschel Ndjomouo Date: Sat Apr 4 08:05:12 2026 -0400 su: fix grammar on man page Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 9360457a70d23f0f27cf680bdd0d3f2ebd23c756) login-utils/su.1.adoc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 7f71f199ea05983238461b917a03bf86cc9b2b59 Author: Christian Goeschel Ndjomouo Date: Thu Apr 2 22:07:52 2026 -0400 lsclocks: add missing newline character in option description Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit 45df3f4a6bad540052a47a9d091d291afba7f5ca) misc-utils/lsclocks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4f4b02f59f53896540aa5822aad242c4a6b370c3 Author: Tobias Stoeckmann Date: Thu Apr 2 17:29:17 2026 +0200 lscpu(man): Move options into correct section Link help-version.adoc into OPTIONS section instead of ENVIRONMENT. Signed-off-by: Tobias Stoeckmann (cherry picked from commit c5afb5349db7c9ccf8cb08c609830a8c0b69baf9) sys-utils/lscpu.1.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 1e7cf02c9fa9645be1ba2fa0d1aaa643c927142a Author: Tobias Stoeckmann Date: Thu Apr 2 17:27:23 2026 +0200 lsblk(man): Add COLORS section Since lsblk supports colors, link in COLORS description. Signed-off-by: Tobias Stoeckmann (cherry picked from commit 70278f90cfa7a00b06bd51e3320175ef252fa4d5) misc-utils/lsblk.8.adoc | 2 ++ 1 file changed, 2 insertions(+) commit ec2e371da56a8d69d6787eff856a36ddab9e12f0 Author: Leonid Znamenok Date: Tue Mar 31 00:33:46 2026 +0400 fincore: (tests) fix tmpfs detection for out-of-tree builds The tmpfs check used $PWD which points to the source directory, not to the output directory where test files are actually created. When tests are run with --builddir on tmpfs (e.g. /tmp), the check fails to detect it and the test produces wrong results because O_DIRECT has no effect on tmpfs. Use $TS_OUTDIR instead, which is the actual directory where dd creates test files and fincore inspects them. (cherry picked from commit 187122ce130e49420bca7530eee0bffd198ba04f) tests/ts/fincore/count | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit be79e2ba372dfc0dafaa3ad3d1a40daf91085506 Author: Christian Goeschel Ndjomouo Date: Mon Mar 30 13:44:13 2026 -0400 libuser: fix misleading error message When setting the effective user fails the code prints a misleading error message stating that 'group' privileges could not be dropped, but it should state 'user' instead. Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit bbcb14ffee11bb8b7e6ba0ab9effff79aeb489ce) login-utils/libuser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb8986711156271dd4df4422f7bee406c470fe3e Author: Karel Zak Date: Thu Mar 26 13:44:08 2026 +0100 tests: add btrfs RAID is-mounted test for libmount Add a test that verifies mnt_table_is_fs_mounted() correctly detects already-mounted btrfs subvolumes when the fstab source device differs from the one in mountinfo (simulating btrfs RAID). The test uses synthetic mountinfo and fstab files with /dev/sdc1 in mountinfo and /dev/sdc2 in fstab, covering both subvol= and subvolid= variants. Addresses: https://github.com/util-linux/util-linux/issues/3778 Signed-off-by: Karel Zak (cherry picked from commit 4583d15248fdce6b8bf969d57abac19eb616afcc) tests/expected/libmount/tabfiles-is-mounted-btrfs | 10 ++++++++++ tests/ts/libmount/files/fstab_btrfs | 10 ++++++++++ tests/ts/libmount/files/mountinfo_btrfs | 8 ++++++++ tests/ts/libmount/tabfiles | 4 ++++ 4 files changed, 32 insertions(+) commit e7356b5f2056c22f4eba7995ca9d3a6f5e82eaf4 Author: Karel Zak Date: Thu Mar 26 13:28:45 2026 +0100 libmount: return btrfs rootfs from get_btrfs_fs_root() Extend get_btrfs_fs_root() to return the matching mountinfo entry via a new rootfs parameter. This allows mnt_table_get_fs_root() to propagate the actual mounted device as src_fs, so __mnt_table_is_fs_mounted() uses the device path from mountinfo rather than the fstab-resolved one. This fixes btrfs RAID detection where the fstab source (e.g., /dev/sdc2) may differ from the device the kernel used in mountinfo (e.g., /dev/sdc1), causing mount -a to not recognize already-mounted subvolumes. Also add a new branch for fstab entries with subvol= (without subvolid=) to search mountinfo for the matching entry. The test_is_mounted now accepts an optional mountinfo file argument to allow testing without a live mount setup. Addresses: https://github.com/util-linux/util-linux/issues/3778 Signed-off-by: Karel Zak (cherry picked from commit 029fe5ec6593cfe0cf4582f9fa0ca53e3766fed6) libmount/src/tab.c | 75 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 20 deletions(-) commit ade169fd8b8fd8240f1aa611fdbd8c2387fd1172 Author: Karel Zak Date: Wed Mar 25 14:27:05 2026 +0100 libmount: use match_source for mountinfo comparison Use mnt_fs_match_source() instead of mnt_fs_streq_srcpath() in __mnt_table_is_fs_mounted() to compare source paths against mountinfo entries. The streq_srcpath() does a simple string comparison that fails when the device name in mountinfo differs from the resolved fstab source (e.g., /dev/dm-N vs /dev/mapper/name, or different btrfs RAID member devices). The match_source() handles device name canonicalization and tag-based matching through the cache. Addresses: https://github.com/util-linux/util-linux/issues/3778 Signed-off-by: Karel Zak (cherry picked from commit 5119ba54f30a5c1f3d6c75c290f3751761db93cd) libmount/src/tab.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 75f03de082bfa7ff52fdadad6b3d1b1fd3a258d2 Author: Karel Zak Date: Thu Mar 19 11:30:07 2026 +0100 tools: (compare-buildsys) suppress common lines in diff output Signed-off-by: Karel Zak (cherry picked from commit 49a7e83c50a2025a08985117c0ca2c39fee8332b) tools/compare-buildsys.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 252d4455bc0c0b539814f0a6a4d1d90ec3c91544 Author: Benno Schulenberg Date: Wed Mar 11 12:35:57 2026 +0100 terminal-colors.d: (man) re-apply improvements lost in merge Commit 3252142521 improved the man page formatting and wording, but merge commit d708fc7db6 undid all those changes due to a conflict resolution mess. Re-apply the improvements: - do not show 'type' as an optional part in the synopsis - indent the list of file types for clarity - correct and improve several wordings - fix grammar ("which provide" not "which provides") - compact the examples section Addresses: https://github.com/util-linux/util-linux/commit/3252142521 Signed-off-by: Karel Zak (cherry picked from commit e4889528b3d4d895ea8dbe60ed6b8eb82b3ddf05) lib/terminal-colors.d.5.adoc | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) commit de96f05b026d69df26ae166264ec35cd75e93442 Author: WanBingjiang Date: Thu Apr 23 18:48:06 2026 +0800 dmesg: fix out-of-bounds read when parsing malformed kmsg file Add bounds check to LAST_KMSG_FIELD macro to prevent accessing memory before the buffer start, and null-terminate the record buffer in print_kmsg_file() to stop string functions from reading past the valid data. Addresses: https://github.com/util-linux/util-linux/issues/4271 Signed-off-by: WanBingjiang (cherry picked from commit 27987e70f8913a0b9f9d6cc9213a6c063c55990c) sys-utils/dmesg.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) commit 03f695814180d705a2a08f6f779700cb75845361 Author: Christian Goeschel Ndjomouo Date: Tue Apr 7 10:25:17 2026 -0400 su-common: revert "su: pass arguments after to shell" This reverts commit ac0147fd14b348097c82c1c89a5417b582e26bad. Commit ac0147f added '+' to the getopt(3) option string which allowed the passing of all arguments after a non-option arg to be passed to the invoked shell, in this case after . However, this introduced a regression in runuser(1) and su(1) where options for both utilities are scattered before and after the username. E.g.: "su -c 'echo foo' -s /bin/bash" will pass both -c and -s argument sets to the invoked shell instead of simply passing -c 'echo foo'. Note that this behavior is more common in BSD/macOS-style implementations of su(1), in a future commit this behavior will be added more sensibly and carefully. Addresses: ac0147f Signed-off-by: Christian Goeschel Ndjomouo (cherry picked from commit f0b8ec59b1f5a053c126bcdef54e090c84bec5d8) login-utils/su-common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 130691baf0d5cd261f75264304230e2c1aeb238e Author: Mario Blättermann Date: Mon Apr 20 18:42:12 2026 +0200 [po-man] Add missing languages to po4a.cfg (cherry picked from commit dc44f44fa5bcabbc18a4c29d845d44f47eeb645a) po-man/po4a.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8c455f3d3d3e6382fa452519ebf059a806824b3c Author: Karel Zak Date: Wed Apr 15 20:59:15 2026 +0200 libblkid: reiserfs: add block size validation for reiser4 Signed-off-by: Karel Zak (cherry picked from commit 4fe7c83730bc4d14f62390faa3ae736a32f0f303) libblkid/src/superblocks/reiserfs.c | 4 ++++ 1 file changed, 4 insertions(+) commit a5f0864e2bc50ae305a32dd4d303742d6e573d02 Author: Karel Zak Date: Wed Apr 15 20:40:03 2026 +0200 libblkid: erofs: validate blkszbits before checksum calculation Signed-off-by: Karel Zak (cherry picked from commit e16163db841c769abfe6eb31fb32207a89e8f3e7) libblkid/src/superblocks/erofs.c | 7 +++++++ 1 file changed, 7 insertions(+) commit 2a2ed08df7d9763b890505b68fe2527e6f106acb Author: Karel Zak Date: Wed Apr 15 20:38:08 2026 +0200 libblkid: exfs: avoid 32-bit overflow in rextsize validation Signed-off-by: Karel Zak (cherry picked from commit f5353689c144e861ba6b88fced9d58eefbd72c26) libblkid/src/superblocks/exfs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a6bd1374e28af4bace35ac547f66311893ef21f4 Author: Karel Zak Date: Wed Apr 15 20:37:45 2026 +0200 libblkid: solaris: use 64-bit for partition offset calculations Signed-off-by: Karel Zak (cherry picked from commit d61b646747cd76515d8dcc5356ca7ec83d398d3c) libblkid/src/partitions/solaris_x86.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 2c0bcab9b08be0c31ffcc5351a68686651f3527d Author: Karel Zak Date: Wed Apr 15 20:37:12 2026 +0200 libblkid: bsd: use 64-bit for partition offset calculations Signed-off-by: Karel Zak (cherry picked from commit 96150bac05b03b757b1e157705ebafe6e9455d41) libblkid/src/partitions/bsd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit d6e63b0ba0a3e1a96e00eed73236d7f62794cf91 Author: Karel Zak Date: Wed Apr 15 20:36:41 2026 +0200 libblkid: mac: use 64-bit for partition offset calculations Signed-off-by: Karel Zak (cherry picked from commit 040d9ed30c16054ee72680b133425807fa8f21be) libblkid/src/partitions/mac.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 8d37e419b1850e6bd869f7b39cb5c89a1c1319c6 Author: Karel Zak Date: Wed Apr 15 20:36:10 2026 +0200 libblkid: dos: use 64-bit for partition offset calculations Signed-off-by: Karel Zak (cherry picked from commit ab43959005b9d1f9e538c30e63dfc2827049af04) libblkid/src/partitions/dos.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 4277b916e66d9a71d5f8edb23f98d691133ce7f3 Author: Karel Zak Date: Wed Apr 15 20:31:19 2026 +0200 libblkid: udf: avoid 32-bit overflow in offset calculations Signed-off-by: Karel Zak (cherry picked from commit ae818dc1b5b0f205f29dcd65d0baf2082b809b7b) libblkid/src/superblocks/udf.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit b479a10dbdaa0111e611f3383e028ddf1d74c947 Author: Karel Zak Date: Wed Apr 15 20:26:25 2026 +0200 libblkid: vfat: avoid 32-bit overflow in offset calculations Signed-off-by: Karel Zak (cherry picked from commit 6319df1d5728c034305ba982e3a8d81601e1ee14) libblkid/src/superblocks/vfat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 427586d4b076f8cf3bb92fda3c8b30609ad1a4e3 Author: Karel Zak Date: Wed Apr 15 17:18:20 2026 +0200 libblkid: ubi: fix probe return values Signed-off-by: Karel Zak (cherry picked from commit 432ac55c2d588a7738abebc17fbb5b03cef155a7) libblkid/src/superblocks/ubi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 0bbd93803bdb9d4e51b2fecb39641c7277aa0259 Author: Karel Zak Date: Wed Apr 15 17:16:07 2026 +0200 libblkid: f2fs: tighten log_blocksize validation Signed-off-by: Karel Zak (cherry picked from commit 20cde6668d8514f6b920aac20cb6aa0950ee8e68) libblkid/src/superblocks/f2fs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 11381d9784ca34199e8290f18628290c325ef029 Author: Karel Zak Date: Wed Apr 15 15:53:56 2026 +0200 libblkid: nilfs: fix byte order and block size validation Fix s_dev_size comparison to use le64_to_cpu() for big-endian architectures. Tighten s_log_block_size check to match kernel limit (NILFS_MAX_BLOCK_SIZE=65536, max shift 6). Signed-off-by: Karel Zak (cherry picked from commit 173bd0448a90afe8b446f99ca31d3a23ce64ead3) libblkid/src/superblocks/nilfs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) commit dc6f4c008bbf89ffdfede833496330d3fe94622d Author: Karel Zak Date: Wed Apr 15 15:51:19 2026 +0200 libblkid: gpt: fix wiper offset to use sector size Signed-off-by: Karel Zak (cherry picked from commit 17c4cb66e39348d841b0bc0e316e79af9b2227d7) libblkid/src/partitions/gpt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5bb81ecd0772136dccc34b9f4c9d96d16f7291af Author: Karel Zak Date: Wed Apr 15 15:48:09 2026 +0200 libblkid: udf: cap descriptor sequence iteration count The descriptor count is derived from attacker-controlled anchor length and has no upper bound. Cap at 64 -- a UDF volume descriptor sequence contains only a handful of descriptors (PVD, LVD, USD, IUVD, TD, ...), similar to the kernel's UDF_MAX_TD_NESTING limit in fs/udf/super.c. Signed-off-by: Karel Zak (cherry picked from commit 57a5fb72288057be9ea8204b997c1d97e445bc63) libblkid/src/superblocks/udf.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 960a4a94966107e1dfca7d6397d387b9ee89aaf2 Author: Karel Zak Date: Wed Apr 15 15:42:40 2026 +0200 libblkid: bcache: add missing NULL check Signed-off-by: Karel Zak (cherry picked from commit b962c2e18346e6085a95e6b50aa1fceccc516459) libblkid/src/superblocks/bcache.c | 2 ++ 1 file changed, 2 insertions(+) commit 36ac7f7ffbc2ea8e325595d05e42ae83032db73e Author: Karel Zak Date: Wed Apr 15 15:38:29 2026 +0200 libblkid: bsd: read enough data to cover disklabel struct Signed-off-by: Karel Zak (cherry picked from commit f7dcadb9d817feca5f29dc16b016403d7275a966) libblkid/src/partitions/bsd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 54e0db049b5b6aafab8fb83915c86b277428fad4 Author: Karel Zak Date: Wed Apr 15 15:35:32 2026 +0200 libblkid: befs: improve bounds checking in B+ tree search Signed-off-by: Karel Zak (cherry picked from commit b918cfb77d1d2d7bd90e70196577bd633f829faf) libblkid/src/superblocks/befs.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) commit 562a58c3b907180babb77b85ecfb4bcee0672664 Author: Karel Zak Date: Wed Apr 15 15:20:47 2026 +0200 libblkid: ntfs: improve integer overflow checks Signed-off-by: Karel Zak (cherry picked from commit 7588a39f6ed34b024295ffbdb3f1289362f6eecd) libblkid/src/superblocks/ntfs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 32dc36d5ed35c7b0d0460fdc9610e8c7694a2f15 Author: Štěpán Němec Date: Wed Apr 22 20:25:03 2026 +0200 copyfilerange: (man) fix swapped offsets in command example Signed-off-by: Štěpán Němec misc-utils/copyfilerange.1.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 163580f997e33b8532b7fe88729cf02ea8c21ce4 Author: Zdenek Kabelac Date: Fri Apr 17 16:55:43 2026 +0200 libblkid: introduce sysfs_devno_is_dm_hidden() for pre-open check Stratis reuses the DM "private" UUID convention ("stratis-1-private") but its devices are legitimately opened by tools like mkfs.xfs to obtain device geometry. The pre-open check added in the previous commit (d05a84b22) used sysfs_devno_is_dm_private() which also blocks Stratis devices, breaking mkfs.xfs on Stratis pools. Introduce sysfs_devno_is_dm_hidden() which only checks for LVM internal devices (the "LVM--" UUID pattern). A "hidden" DM device is one that exists solely as a building block for another DM target -- no user-space tool should normally open or write to it. Use sysfs_devno_is_dm_hidden() in blkid_new_probe_from_filename() so that Stratis devices remain accessible while LVM internal devices are still skipped before open(). Signed-off-by: Zdenek Kabelac (cherry picked from commit a42fbbb5a446f8f97a7b401653c98042be45d3df) include/sysfs.h | 1 + lib/sysfs.c | 42 ++++++++++++++++++++++++++++++++++++++++++ libblkid/src/probe.c | 10 +++++++--- 3 files changed, 50 insertions(+), 3 deletions(-) commit f3245d4fa2e400755e522d7aa593f88587cfd56d Author: Thomas Weißschuh Date: Fri Apr 10 18:04:58 2026 +0200 meson: test for statx::stx_mnt_id in sys/stat.h Both the check for the general availability of 'struct statx' and the code actual code use sys/stat.h and not linux/stat.h. The test for stx_mnt_id also needs to test in sys/stat.h as otherwise the detection result is wrong. Signed-off-by: Thomas Weißschuh (cherry picked from commit af6168533cb011489bd0b4b1a2fbbaaeec6859b2) meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)