]> git.ipfire.org Git - thirdparty/util-linux.git/log
thirdparty/util-linux.git
2 weeks agomeson: build test_scols_termreduce
Thomas Weißschuh [Sun, 12 Apr 2026 06:04:38 +0000 (08:04 +0200)] 
meson: build test_scols_termreduce

Build the test helper for the libsmartcols tests.
The helper expects libsmartcols.h to be in "$builddir/libsmartcols/src",
so make sure meson also places it there.

Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
2 weeks agomeson: test for statx::stx_mnt_id in sys/stat.h
Thomas Weißschuh [Fri, 10 Apr 2026 16:04:58 +0000 (18:04 +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 <thomas@t-8ch.de>
2 weeks agotests: (run.sh) remove unused variable
Christian Goeschel Ndjomouo [Fri, 10 Apr 2026 03:48:35 +0000 (23:48 -0400)] 
tests: (run.sh) remove unused variable

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agotests: (run.sh) fix coding style
Christian Goeschel Ndjomouo [Fri, 10 Apr 2026 03:40:29 +0000 (23:40 -0400)] 
tests: (run.sh) fix coding style

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agotests: (run.sh) remove extraneous case pattern
Christian Goeschel Ndjomouo [Fri, 10 Apr 2026 03:20:40 +0000 (23:20 -0400)] 
tests: (run.sh) remove extraneous case pattern

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agotests: (blkid) add --no-part-details tests
Christian Goeschel Ndjomouo [Thu, 9 Apr 2026 23:55:45 +0000 (19:55 -0400)] 
tests: (blkid) add --no-part-details tests

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agolast: Use int for string precision modifier
Tobias Stoeckmann [Thu, 9 Apr 2026 19:23:05 +0000 (21:23 +0200)] 
last: Use int for string precision modifier

The %.*s modifier requires an int as precision argument, not an unsigned
int. Instead of just turning the domain_len and name_len fields into
int, this refactoring makes it easier to verify that only two fixed
values are ever used and avoids many int/size_t casts:

Since fullnames_mode field already specifies which values domain_len and
name_len will take, these fields can be turned into local variables.

No special checks required when parsing 'w' argument.

Setting domain_len and name_len as close as possible to their usages as
%.*s modifier arguments shows that the relevant if-else-blocks are always
evaluated and only allow two values.

This leads to smaller binary size because less instructions are needed
(e.g. these variables do not need pointer dereferences anymore).
In total, around 160 bytes on x86_64 are saved.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoman: Unify SEE ALSO sections
Tobias Stoeckmann [Thu, 9 Apr 2026 19:54:46 +0000 (21:54 +0200)] 
man: Unify SEE ALSO sections

- Manual pages are separated by comma
- Sections are not bold
- One entry per line

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agokill: (man) improve PID:inode description
Christian Goeschel Ndjomouo [Thu, 9 Apr 2026 16:18:38 +0000 (12:18 -0400)] 
kill: (man) improve PID:inode description

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agobuild: Fix --disable-copyfilerange
Tobias Stoeckmann [Thu, 9 Apr 2026 15:23:41 +0000 (17:23 +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 <tobias@stoeckmann.org>
2 weeks agotreewide: use err() instead of errx() where ul_get{userpw,grp}_str() fails
Christian Goeschel Ndjomouo [Wed, 8 Apr 2026 05:20:53 +0000 (01:20 -0400)] 
treewide: use err() instead of errx() where ul_get{userpw,grp}_str() fails

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agolib: (pwdutils.c) improve error return protocol for callers
Christian Goeschel Ndjomouo [Wed, 8 Apr 2026 04:47:49 +0000 (00:47 -0400)] 
lib: (pwdutils.c) improve error return protocol for callers

In some cases libc does not properly set errno when no passwd
or group entry was found by getpwnam or getgrnam like functions.
This becomes an issue when callers have to provide coherent error
messages with err(). Therefore, let us improve the errno protocol
in internal wrapper functions for the above mentioned and set errno
 when libc does not.

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agofdisk: fix trailing whitespace in user reply from readline completion
Leonid Znamenok [Thu, 9 Apr 2026 12:39:40 +0000 (16:39 +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

2 weeks agoMerge branch 'fix_kill_name_to_number_test' of https://github.com/cgoesche/util-linux...
Karel Zak [Thu, 9 Apr 2026 13:14:01 +0000 (15:14 +0200)] 
Merge branch 'fix_kill_name_to_number_test' of https://github.com/cgoesche/util-linux-fork

* 'fix_kill_name_to_number_test' of https://github.com/cgoesche/util-linux-fork:
  tests: skip SIGRTMAX check on s390x/QEMU

2 weeks agolib/pidutils, lib/pidfd-utils: use _() instead of N_() in err() calls
Karel Zak [Thu, 9 Apr 2026 13:08:30 +0000 (15:08 +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 <kzak@redhat.com>
2 weeks agoMerge branch 'allow_negative_pids' of https://github.com/cgoesche/util-linux-fork
Karel Zak [Thu, 9 Apr 2026 12:58:25 +0000 (14:58 +0200)] 
Merge branch 'allow_negative_pids' of https://github.com/cgoesche/util-linux-fork

* 'allow_negative_pids' of https://github.com/cgoesche/util-linux-fork:
  tests: add helper program and test for lib/pidutils.c
  lib: (pidutils.c) allow zero and negative numbers for PIDs

2 weeks agoMerge branch 'man_env_style' of https://github.com/stoeckmann/util-linux
Karel Zak [Thu, 9 Apr 2026 12:52:06 +0000 (14:52 +0200)] 
Merge branch 'man_env_style' of https://github.com/stoeckmann/util-linux

* 'man_env_style' of https://github.com/stoeckmann/util-linux:
  lscpu(man): Split ENVIRONMENT descriptions
  terminal-colors.d(man): Clarify debug output
  man: Fix ENVIRONMENT bold text style
  man: Avoid conditional ENVIRONMENT descriptions
  man: End sentences with fullstop
  man: Adjust ENVIRONMENT grammar
  man: Start ENVIRONMENT sentences with capital letter
  man: Drop ENVIRONMENT intro text
  swaplabel(man): Fix indentation
  man: Sort ENVIRONMENT variables alphabetically
  mkfs.cramfs(man): Add ENVIRONMENT section
  mkfs.bfs(man): Add ENVIRONMENT section
  lslocks(man): Merge environment sections

2 weeks agoMerge branch 'fix-luks-probe' of https://github.com/silentcreek/util-linux
Karel Zak [Thu, 9 Apr 2026 12:50:56 +0000 (14:50 +0200)] 
Merge branch 'fix-luks-probe' of https://github.com/silentcreek/util-linux

* 'fix-luks-probe' of https://github.com/silentcreek/util-linux:
  libblkid: Ignore secondary LUKS2 header in blkid_do_safeprobe()

2 weeks agoMerge branch 'pam_resources' of https://github.com/stoeckmann/util-linux
Karel Zak [Thu, 9 Apr 2026 12:49:17 +0000 (14:49 +0200)] 
Merge branch 'pam_resources' of https://github.com/stoeckmann/util-linux

* 'pam_resources' of https://github.com/stoeckmann/util-linux:
  login-utils/auth: Drop pam_setcred
  su: Clean up PAM resources on all error paths
  login: Clean up PAM resources on error path

2 weeks agotests: fix grammar in functions.sh
Christian Goeschel Ndjomouo [Thu, 9 Apr 2026 12:10:21 +0000 (08:10 -0400)] 
tests: fix grammar in functions.sh

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agotests: (blkid) add test for --usages
Christian Goeschel Ndjomouo [Tue, 7 Apr 2026 00:28:16 +0000 (20:28 -0400)] 
tests: (blkid) add test for --usages

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agolsblk: show mountpoints for all multi-device filesystem members
Karel Zak [Thu, 9 Apr 2026 12:30:39 +0000 (14:30 +0200)] 
lsblk: show mountpoints for all multi-device filesystem members

/proc/self/mountinfo lists only one member device per mount, so other
devices in multi-device filesystems appear unmounted. Add a group cache
that discovers multi-device groups and propagates mount entries to all
members.

For btrfs, device groups are enumerated from /sys/fs/btrfs/<uuid>/devices/.
For ZFS, pool names are collected from mountinfo (fstype=zfs) and devices
are matched via blkid properties (fstype=zfs_member, label=poolname).

Mount entries are cached in the group during scan, so the per-device
lookup is a simple iteration of cached entries without re-scanning
mountinfo.

Addresses: https://github.com/util-linux/util-linux/issues/4145
Addresses: https://github.com/util-linux/util-linux/pull/4198
Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agoMerge branch 'libblkid_s_formatter' of https://github.com/stoeckmann/util-linux
Karel Zak [Thu, 9 Apr 2026 09:49:45 +0000 (11:49 +0200)] 
Merge branch 'libblkid_s_formatter' of https://github.com/stoeckmann/util-linux

* 'libblkid_s_formatter' of https://github.com/stoeckmann/util-linux:
  libblkid: Fix typo in probe_zfs
  libblkid: Fix type access in zfs_extract_guid_name
  libblkid: Fix debug OOB read in zfs_process_value
  libblkid: Fix parse_dev debug output
  libblkid: Simplify blkid_probe_log_csum_mismatch

2 weeks agoMerge branch 'asciidoc' of https://github.com/stoeckmann/util-linux
Karel Zak [Thu, 9 Apr 2026 09:39:18 +0000 (11:39 +0200)] 
Merge branch 'asciidoc' of https://github.com/stoeckmann/util-linux

* 'asciidoc' of https://github.com/stoeckmann/util-linux:
  po-man/po4a: Add missing manual pages
  fsck.minix(man): Fix asciidoctor table

2 weeks agoMerge branch 'fix/issue_4125' of https://github.com/lord2y/util-linux
Karel Zak [Thu, 9 Apr 2026 09:35:38 +0000 (11:35 +0200)] 
Merge branch 'fix/issue_4125' of https://github.com/lord2y/util-linux

* 'fix/issue_4125' of https://github.com/lord2y/util-linux:
  eject: tolerate ILLEGAL REQUEST on ALLOW_MEDIUM_REMOVAL

2 weeks agoMerge branch 'agetty_syslog' of https://github.com/stoeckmann/util-linux
Karel Zak [Thu, 9 Apr 2026 09:23:07 +0000 (11:23 +0200)] 
Merge branch 'agetty_syslog' of https://github.com/stoeckmann/util-linux

* 'agetty_syslog' of https://github.com/stoeckmann/util-linux:
  agetty: Always use syslog

2 weeks agolscpu(man): Split ENVIRONMENT descriptions
Tobias Stoeckmann [Tue, 7 Apr 2026 17:32:20 +0000 (19:32 +0200)] 
lscpu(man): Split ENVIRONMENT descriptions

Keep environment variable descriptions independent from each other.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoterminal-colors.d(man): Clarify debug output
Tobias Stoeckmann [Tue, 7 Apr 2026 17:31:09 +0000 (19:31 +0200)] 
terminal-colors.d(man): Clarify debug output

Specify which debug output exactly is printed.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoman: Fix ENVIRONMENT bold text style
Tobias Stoeckmann [Tue, 7 Apr 2026 16:55:18 +0000 (18:55 +0200)] 
man: Fix ENVIRONMENT bold text style

Turn environment variables bold but not their values. Also do not use
bold text in description for debug variables.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoman: Avoid conditional ENVIRONMENT descriptions
Tobias Stoeckmann [Tue, 7 Apr 2026 16:49:21 +0000 (18:49 +0200)] 
man: Avoid conditional ENVIRONMENT descriptions

Describe what the variable does directly to avoid conditional
statements.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoman: End sentences with fullstop
Tobias Stoeckmann [Tue, 7 Apr 2026 16:50:48 +0000 (18:50 +0200)] 
man: End sentences with fullstop

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoman: Adjust ENVIRONMENT grammar
Tobias Stoeckmann [Tue, 7 Apr 2026 16:33:36 +0000 (18:33 +0200)] 
man: Adjust ENVIRONMENT grammar

Avoid third person and describe what you can do with the variable
instead. Matches OPTIONS section sentences.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoman: Start ENVIRONMENT sentences with capital letter
Tobias Stoeckmann [Tue, 7 Apr 2026 16:27:07 +0000 (18:27 +0200)] 
man: Start ENVIRONMENT sentences with capital letter

This merges writing style with other sections, e.g. OPTIONS. Also, some
sentences already complied to this.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoMerge branch 'fix-musl-at-handle-fid' of https://github.com/Gskartwii/util-linux
Karel Zak [Thu, 9 Apr 2026 08:45:52 +0000 (10:45 +0200)] 
Merge branch 'fix-musl-at-handle-fid' of https://github.com/Gskartwii/util-linux

* 'fix-musl-at-handle-fid' of https://github.com/Gskartwii/util-linux:
  nsenter: Fix AT_HANDLE_FID on musl

2 weeks agoirqtop: use irqtop_puts() for pre-formatted table data
Karel Zak [Thu, 9 Apr 2026 08:39:52 +0000 (10:39 +0200)] 
irqtop: use irqtop_puts() for pre-formatted table data

Avoid unnecessary printf formatting when outputting pre-formatted
table strings. The new irqtop_puts() writes data directly via
fputs/waddstr without extra buffer allocation, appending a specified
number of trailing newlines.

This also reduces the buffer size requirements for the vw_printw()
slang fallback, which is now only used for the short header line.

Signed-off-by: Karel Zak <kzak@redhat.com>
2 weeks agoirqtop: add vw_printw() fallback for slang builds
Karel Zak [Thu, 9 Apr 2026 08:16:30 +0000 (10:16 +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 <kzak@redhat.com>
2 weeks agoeject: tolerate ILLEGAL REQUEST on ALLOW_MEDIUM_REMOVAL
Alessandro Ratti [Wed, 8 Apr 2026 16:25:07 +0000 (18:25 +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 <alessandro@0x65c.net>
2 weeks agolibblkid: Fix typo in probe_zfs
Tobias Stoeckmann [Wed, 8 Apr 2026 19:57:46 +0000 (21:57 +0200)] 
libblkid: Fix typo in probe_zfs

It should be swap_endian, not swab_endian.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agolibblkid: Fix type access in zfs_extract_guid_name
Tobias Stoeckmann [Wed, 8 Apr 2026 19:56:03 +0000 (21:56 +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 <tobias@stoeckmann.org>
2 weeks agolibblkid: Fix debug OOB read in zfs_process_value
Tobias Stoeckmann [Wed, 8 Apr 2026 19:53:12 +0000 (21:53 +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 <tobias@stoeckmann.org>
2 weeks agolibblkid: Fix parse_dev debug output
Tobias Stoeckmann [Wed, 8 Apr 2026 19:48:13 +0000 (21:48 +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 <tobias@stoeckmann.org>
2 weeks agolibblkid: Simplify blkid_probe_log_csum_mismatch
Tobias Stoeckmann [Wed, 8 Apr 2026 19:39:32 +0000 (21:39 +0200)] 
libblkid: Simplify blkid_probe_log_csum_mismatch

The function blkid_probe_log_csum_mismatch is only used for debugging
purposes. Simplify the code to avoid any form of modifier for %s.

Right now, %*s is incorrect because it specifies the field width, not
the precision. This could theoretically lead to issues, but since this
function is always called with sizes of 8 or 32, it is safe.

Just make sure that the strings are always NUL-terminated, even if size
is 0 or larger than 256.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agopo-man/po4a: Add missing manual pages
Tobias Stoeckmann [Wed, 8 Apr 2026 19:25:55 +0000 (21:25 +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 <tobias@stoeckmann.org>
2 weeks agofsck.minix(man): Fix asciidoctor table
Tobias Stoeckmann [Wed, 8 Apr 2026 19:24:20 +0000 (21:24 +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 <tobias@stoeckmann.org>
2 weeks agotests: add helper program and test for lib/pidutils.c
Christian Goeschel Ndjomouo [Tue, 7 Apr 2026 17:33:39 +0000 (13:33 -0400)] 
tests: add helper program and test for lib/pidutils.c

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agolib: (pidutils.c) allow zero and negative numbers for PIDs
Christian Goeschel Ndjomouo [Sun, 5 Apr 2026 02:15:04 +0000 (22:15 -0400)] 
lib: (pidutils.c) allow zero and negative numbers for PIDs

kill(1) and kill(2) man pages clearly state that 0 and negative
numbers can be used. Therefore let us adapt the internal helper
function ul_parse_pid_str() to permit this value range, as the
previous behavior regressed the kill(1) PID parsing behavior.

The uncommon value range can be controlled with two new flags
UL_PID_ZERO and UL_PID_NEGATIVE, ORed together they will allow
0 and negative values down to INT_MIN. Otherwise they can be
passed individually to only allow either. If 0 is passed only
1 upto INT_MAX values are allowed.

Closes: #4194
Closes: #4195
Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agolibblkid: Ignore secondary LUKS2 header in blkid_do_safeprobe()
silentcreek [Sat, 4 Apr 2026 21:26:01 +0000 (21:26 +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 <public_timo.s@silentcreek.de>
--
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

2 weeks agoMerge branch 'bits_unsigned_integer_underflow' of https://github.com/cgoesche/util...
Karel Zak [Wed, 8 Apr 2026 10:58:56 +0000 (12:58 +0200)] 
Merge branch 'bits_unsigned_integer_underflow' of https://github.com/cgoesche/util-linux-fork

* 'bits_unsigned_integer_underflow' of https://github.com/cgoesche/util-linux-fork:
  tests: (bits) add --width tests for invalid values
  bits: prevent unsigned integer underflow and long-lived loop
  lib: (cpuset.c) dont calculate allocation size for 0 ncpus

2 weeks agoMerge branch 'agetty_chroot_chdir' of https://github.com/stoeckmann/util-linux
Karel Zak [Wed, 8 Apr 2026 10:41:35 +0000 (12:41 +0200)] 
Merge branch 'agetty_chroot_chdir' of https://github.com/stoeckmann/util-linux

* 'agetty_chroot_chdir' of https://github.com/stoeckmann/util-linux:
  agetty: Always call chdir after chroot

2 weeks agologin-utils/auth: Drop pam_setcred
Tobias Stoeckmann [Tue, 7 Apr 2026 17:53:09 +0000 (19:53 +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 <tobias@stoeckmann.org>
2 weeks agosu: Clean up PAM resources on all error paths
Tobias Stoeckmann [Fri, 3 Apr 2026 07:40:24 +0000 (09:40 +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 <tobias@stoeckmann.org>
2 weeks agologin: Clean up PAM resources on error path
Tobias Stoeckmann [Fri, 3 Apr 2026 07:38:43 +0000 (09:38 +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 <tobias@stoeckmann.org>
2 weeks agoman: Drop ENVIRONMENT intro text
Tobias Stoeckmann [Tue, 7 Apr 2026 16:19:23 +0000 (18:19 +0200)] 
man: Drop ENVIRONMENT intro text

A few ENVIRONMENT sections had intro texts. Drop them to unify the look
(and they did not contain useful information).

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoswaplabel(man): Fix indentation
Tobias Stoeckmann [Tue, 7 Apr 2026 16:15:04 +0000 (18:15 +0200)] 
swaplabel(man): Fix indentation

Other environment variable descriptions start at the beginning of the
line.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoman: Sort ENVIRONMENT variables alphabetically
Tobias Stoeckmann [Tue, 7 Apr 2026 16:13:53 +0000 (18:13 +0200)] 
man: Sort ENVIRONMENT variables alphabetically

This matches other sections, e.g. OPTIONS.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agomkfs.cramfs(man): Add ENVIRONMENT section
Tobias Stoeckmann [Tue, 7 Apr 2026 16:04:08 +0000 (18:04 +0200)] 
mkfs.cramfs(man): Add ENVIRONMENT section

Document LOCK_BLOCK_DEVICE, which is supported by the tool.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agomkfs.bfs(man): Add ENVIRONMENT section
Tobias Stoeckmann [Tue, 7 Apr 2026 16:03:15 +0000 (18:03 +0200)] 
mkfs.bfs(man): Add ENVIRONMENT section

Document LOCK_BLOCK_DEVICE, which is supported by the tool.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agolslocks(man): Merge environment sections
Tobias Stoeckmann [Tue, 7 Apr 2026 16:01:45 +0000 (18:01 +0200)] 
lslocks(man): Merge environment sections

The manual page contains two ENVIRONMENT sections. Merge them into one.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agonsenter: Fix AT_HANDLE_FID on musl
Aleksi Hannula [Tue, 7 Apr 2026 11:52:16 +0000 (14:52 +0300)] 
nsenter: Fix AT_HANDLE_FID on musl

Signed-off-by: Aleksi Hannula <ahannula4+nixgit@gmail.com>
2 weeks agotests: skip SIGRTMAX check on s390x/QEMU
Christian Goeschel Ndjomouo [Sat, 4 Apr 2026 18:29:55 +0000 (14:29 -0400)] 
tests: skip SIGRTMAX check on s390x/QEMU

The CI fails the kill/name_to_number test when SIGRTMAX-0 (64)
is checked for s390x packaging. Although SIGRTMAX is a valid
signal number, kill(2) still returns EINVAL. This seems to be
related to the fact that QEMU reserves a signal number from
the high real-time signal range for internal usage, which
limits the maximum real-time signal number range.

We already check for the QEMU_USER environment variable, let us
also check if the QEMU emulator is mapped in memory for PID 1
to get more reliable information. In addition to that lets skip
RTMAX checks on s390x and QEMU emulated environments.

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
2 weeks agoMerge branch 'PR/script-fix-arg-permutation' of https://github.com/karelzak/util...
Karel Zak [Tue, 7 Apr 2026 18:59:42 +0000 (20:59 +0200)] 
Merge branch 'PR/script-fix-arg-permutation' of https://github.com/karelzak/util-linux-work

* 'PR/script-fix-arg-permutation' of https://github.com/karelzak/util-linux-work:
  script: fix command and command_norm memory leaks
  script: fix backward compatibility for options after non-option args

2 weeks agoMerge branch 'PR/mkswap-test-pagesize' of https://github.com/karelzak/util-linux...
Karel Zak [Tue, 7 Apr 2026 18:58:48 +0000 (20:58 +0200)] 
Merge branch 'PR/mkswap-test-pagesize' of https://github.com/karelzak/util-linux-work

* 'PR/mkswap-test-pagesize' of https://github.com/karelzak/util-linux-work:
  tests: mkswap file-existing subtest add explicit page size

2 weeks agoagetty: Always use syslog
Tobias Stoeckmann [Tue, 7 Apr 2026 18:40:33 +0000 (20:40 +0200)] 
agetty: Always use syslog

No known systems exist which use agetty and are neither Linux, GNU,
nor FreeBSD. Even MinGW/MSYS use syslog.

Alternative systems which could use the fallback do not build agetty,
e.g. OpenIndiana or other such systems.

This gets rid of a bug in custom /dev/console code in which the
formatter could be modified by a link to agetty containing more
printf modifiers in its name.

It's not worth to fix it.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2 weeks agoagetty: Always call chdir after chroot
Tobias Stoeckmann [Tue, 7 Apr 2026 18:33:30 +0000 (20:33 +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 <tobias@stoeckmann.org>
3 weeks agoMerge branch 'PR/nsenter-pidfd-reuse' of https://github.com/karelzak/util-linux-work
Karel Zak [Tue, 7 Apr 2026 16:06:00 +0000 (18:06 +0200)] 
Merge branch 'PR/nsenter-pidfd-reuse' of https://github.com/karelzak/util-linux-work

* 'PR/nsenter-pidfd-reuse' of https://github.com/karelzak/util-linux-work:
  nsenter: keep PID:inode validated pidfd open

3 weeks agoMerge branch 'PR/libmount-btrfs-raid-mounted' of https://github.com/karelzak/util...
Karel Zak [Tue, 7 Apr 2026 16:04:30 +0000 (18:04 +0200)] 
Merge branch 'PR/libmount-btrfs-raid-mounted' of https://github.com/karelzak/util-linux-work

* 'PR/libmount-btrfs-raid-mounted' of https://github.com/karelzak/util-linux-work:
  tests: add btrfs RAID is-mounted test for libmount
  libmount: return btrfs rootfs from get_btrfs_fs_root()
  libmount: use match_source for mountinfo comparison

3 weeks agotests: mkswap file-existing subtest add explicit page size
Karel Zak [Tue, 7 Apr 2026 15:33:57 +0000 (17:33 +0200)] 
tests: mkswap file-existing subtest add explicit page size

The file-existing subtest fails on platforms with large native page
sizes (e.g. 64 KiB on aarch64) because the 40 KiB swap image is
too small. Add -p 4096 to match the other subtests.

Signed-off-by: Karel Zak <kzak@redhat.com>
3 weeks agoscript: fix command and command_norm memory leaks
Karel Zak [Tue, 7 Apr 2026 13:25:17 +0000 (15:25 +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 <kzak@redhat.com>
3 weeks agoscript: fix backward compatibility for options after non-option args
Karel Zak [Tue, 7 Apr 2026 13:20:04 +0000 (15:20 +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 <zeha@debian.org>
Signed-off-by: Karel Zak <kzak@redhat.com>
3 weeks agoMerge branch 'fix_grammar_in_su_manpage' of https://github.com/cgoesche/util-linux...
Karel Zak [Tue, 7 Apr 2026 14:49:59 +0000 (16:49 +0200)] 
Merge branch 'fix_grammar_in_su_manpage' of https://github.com/cgoesche/util-linux-fork

* 'fix_grammar_in_su_manpage' of https://github.com/cgoesche/util-linux-fork:
  su: fix grammar on man page

3 weeks agotests: (bits) add --width tests for invalid values
Christian Goeschel Ndjomouo [Mon, 6 Apr 2026 21:42:17 +0000 (17:42 -0400)] 
tests: (bits) add --width tests for invalid values

Signed-off-by: Christian Goeschel Ndjomouo <cgoesc2@wgu.edu>
3 weeks agobits: prevent unsigned integer underflow and long-lived loop
Christian Goeschel Ndjomouo [Mon, 6 Apr 2026 21:15:20 +0000 (17:15 -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 <cgoesc2@wgu.edu>
3 weeks agoinclude/statfs_magic.h: revert portable struct statfs headers
Karel Zak [Tue, 7 Apr 2026 14:45:55 +0000 (16:45 +0200)] 
include/statfs_magic.h: revert portable struct statfs headers

Revert changes from commits 1af964d935 and 5f66e252c1c2.

Adding sys/mount.h, sys/vfs.h, and related includes to statfs_magic.h
caused build failures on older systems (e.g., Ubuntu) due to a
collision between sys/mount.h and linux/fs.h -- both define MS_RDONLY,
the first as an enum and the second as a macro.

The previous fix (guarding sys/mount.h with !defined(MS_RDONLY)) was
insufficient because on some systems linux/fs.h itself chains into
sys/mount.h, making the guard unreachable.

The correct approach is to keep statfs_magic.h minimal (only magic
numbers and sys/statfs.h) and let callers include the necessary
struct statfs headers. Currently, all callers of statfs_magic.h are
Linux-only (libmount requires sys/vfs.h, hardlink's USE_REFLINK
requires HAVE_LINUX_FIEMAP_H), so the Darwin-specific sys/mount.h
include is unreachable anyway.

Sorry for the mess, and sorry I had not used a PR for this.

Fixes: 1af964d935 ("include/statfs_magic.h: add portable struct statfs headers for Darwin")
Fixes: 5f66e252c1 ("include/statfs_magic.h: avoid sys/mount.h and linux/fs.h collision")
Signed-off-by: Karel Zak <kzak@redhat.com>
3 weeks agolib: (cpuset.c) dont calculate allocation size for 0 ncpus
Christian Goeschel Ndjomouo [Mon, 6 Apr 2026 21:07:33 +0000 (17:07 -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 <cgoesc2@wgu.edu>
3 weeks agoinclude/statfs_magic.h: avoid sys/mount.h and linux/fs.h collision
Karel Zak [Tue, 7 Apr 2026 13:34:13 +0000 (15:34 +0200)] 
include/statfs_magic.h: avoid sys/mount.h and linux/fs.h collision

Guard the sys/mount.h include with !defined(MS_RDONLY) to prevent
redefinition errors when linux/fs.h has already been included (e.g.,
in fstrim.c). This follows the same pattern used in libmount.h.in.

Fixes: 1af964d935 ("include/statfs_magic.h: add portable struct statfs headers for Darwin")
Signed-off-by: Karel Zak <kzak@redhat.com>
3 weeks agolibcommon: move pidfd-utils.c to Linux-only sources
Karel Zak [Tue, 7 Apr 2026 12:46:06 +0000 (14:46 +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 <kzak@redhat.com>
3 weeks agoinclude/statfs_magic.h: add portable struct statfs headers for Darwin
Morgan Jones [Mon, 6 Apr 2026 01:03:54 +0000 (18:03 -0700)] 
include/statfs_magic.h: add portable struct statfs headers for Darwin

Fixes the build on Darwin since struct statfs is in sys/mount.h
and sys/vfs.h doesn't even exist. Just conditionally include all the
headers.

[kzak@redhat.com: - removed lib/pidfd-utils.c change]

Signed-off-by: Karel Zak <kzak@redhat.com>
3 weeks agoMerge branch 'debug_readability' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 7 Apr 2026 12:18:52 +0000 (14:18 +0200)] 
Merge branch 'debug_readability' of https://github.com/stoeckmann/util-linux

* 'debug_readability' of https://github.com/stoeckmann/util-linux:
  debug: Change debug masknames variable name
  debug: Link __UL_DBG_ macros together
  debug: Use macro definitions more often
  debug: Unify variable names
  debug: Unify debug mask output
  debug: Turn mask unsigned
  debug: Introduce UL_DEBUG_ALL

3 weeks agoMerge branch 'last_numbers' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 7 Apr 2026 12:16:47 +0000 (14:16 +0200)] 
Merge branch 'last_numbers' of https://github.com/stoeckmann/util-linux

* 'last_numbers' of https://github.com/stoeckmann/util-linux:
  last: Use strtou32_or_err for -n arguments
  last: Improve max records parsing

3 weeks agoMerge branch 'lsclocks_missing_newline_in_usage' of https://github.com/cgoesche/util...
Karel Zak [Tue, 7 Apr 2026 12:15:31 +0000 (14:15 +0200)] 
Merge branch 'lsclocks_missing_newline_in_usage' of https://github.com/cgoesche/util-linux-fork

* 'lsclocks_missing_newline_in_usage' of https://github.com/cgoesche/util-linux-fork:
  lsclocks: add missing newline character in option description

3 weeks agoMerge branch 'fix-mkswap-file-perms' of https://github.com/jwueller/util-linux
Karel Zak [Tue, 7 Apr 2026 12:11:02 +0000 (14:11 +0200)] 
Merge branch 'fix-mkswap-file-perms' of https://github.com/jwueller/util-linux

* 'fix-mkswap-file-perms' of https://github.com/jwueller/util-linux:
  mkswap: Fix --file chmod(2) check when file exists

3 weeks agoMerge branch 'man_env' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 7 Apr 2026 12:08:19 +0000 (14:08 +0200)] 
Merge branch 'man_env' of https://github.com/stoeckmann/util-linux

* 'man_env' of https://github.com/stoeckmann/util-linux:
  man: Document debug environment variables
  lscpu(man): Move options into correct section
  lsblk(man): Add COLORS section
  man: Add libsmartcols environment variables

3 weeks agoMerge branch 'chrt_elaborate_on_sched_ext_policy' of https://github.com/cgoesche...
Karel Zak [Tue, 7 Apr 2026 11:49:32 +0000 (13:49 +0200)] 
Merge branch 'chrt_elaborate_on_sched_ext_policy' of https://github.com/cgoesche/util-linux-fork

* 'chrt_elaborate_on_sched_ext_policy' of https://github.com/cgoesche/util-linux-fork:
  chrt: (man) explain which kernel config options are needed for SCHED_EXT

3 weeks agowrite, mesg: add S_ISCHR() check for terminal device paths
Karel Zak [Tue, 7 Apr 2026 11:49:02 +0000 (13:49 +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.

3 weeks agoMerge branch 'matching_formatters' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 7 Apr 2026 10:41:15 +0000 (12:41 +0200)] 
Merge branch 'matching_formatters' of https://github.com/stoeckmann/util-linux

* 'matching_formatters' of https://github.com/stoeckmann/util-linux:
  Use correct formatters for given data types

3 weeks agoMerge branch 'code_typos' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 7 Apr 2026 10:32:58 +0000 (12:32 +0200)] 
Merge branch 'code_typos' of https://github.com/stoeckmann/util-linux

* 'code_typos' of https://github.com/stoeckmann/util-linux:
  su: Remove obsolete code comment
  Fix grammar and typos in code comments

3 weeks agoMerge branch 'pager_sigpipe' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 7 Apr 2026 10:30:23 +0000 (12:30 +0200)] 
Merge branch 'pager_sigpipe' of https://github.com/stoeckmann/util-linux

* 'pager_sigpipe' of https://github.com/stoeckmann/util-linux:
  lib/pager: Fix SIGPIPE handling

3 weeks agoMerge branch 'err_fullstop' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 7 Apr 2026 10:27:34 +0000 (12:27 +0200)] 
Merge branch 'err_fullstop' of https://github.com/stoeckmann/util-linux

* 'err_fullstop' of https://github.com/stoeckmann/util-linux:
  Fix spacing in err messages
  Remove ending punctation from err messages

3 weeks agodebug: Change debug masknames variable name
Tobias Stoeckmann [Fri, 3 Apr 2026 10:31:44 +0000 (12:31 +0200)] 
debug: Change debug masknames variable name

The concatenation for the mask itself is lib_debug_mask, so do the same
for masknames, i.e. add debug into its name.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
3 weeks agodebug: Link __UL_DBG_ macros together
Tobias Stoeckmann [Fri, 3 Apr 2026 09:08:36 +0000 (11:08 +0200)] 
debug: Link __UL_DBG_ macros together

__UL_DBG_CALL can be used by __UL_DBG_OBJ which can be used by __UL_DBG,
which puts the flag check into a single line without duplications.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
3 weeks agodebug: Use macro definitions more often
Tobias Stoeckmann [Fri, 3 Apr 2026 08:52:06 +0000 (10:52 +0200)] 
debug: Use macro definitions more often

Improve readability by using macro definitions instead of explicitly
concatenating variable names in various places.

While at it, fixed formatting.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
3 weeks agodebug: Unify variable names
Tobias Stoeckmann [Fri, 3 Apr 2026 08:48:11 +0000 (10:48 +0200)] 
debug: Unify variable names

If variables mean the same thing, they should have also the same name.
Improves readability.

Add a single comment for the whole header file which specifies what
these identifiers mean.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
3 weeks agodebug: Unify debug mask output
Tobias Stoeckmann [Fri, 3 Apr 2026 08:35:38 +0000 (10:35 +0200)] 
debug: Unify debug mask output

Always format with 0x08x to also cover internal flags. These would be
printed anyway, but now it's always properly formatted.

Keep 0x06x in ul_debug_print_masks since these flags are never supposed
to have any private bits (above UL_DEBUG_ALL) set.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
3 weeks agoMerge branch 'getgrp_range' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 7 Apr 2026 10:01:49 +0000 (12:01 +0200)] 
Merge branch 'getgrp_range' of https://github.com/stoeckmann/util-linux

* 'getgrp_range' of https://github.com/stoeckmann/util-linux:
  pwdutils: Set errno with out of range UIDs/GIDs

3 weeks agodebug: Turn mask unsigned
Tobias Stoeckmann [Fri, 3 Apr 2026 08:16:48 +0000 (10:16 +0200)] 
debug: Turn mask unsigned

The debug mask is a bitmask, so use an unsigned type. This also matches
the string formatters, since x/X expect an unsigned data type.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
3 weeks agoMerge branch 'unshare_indentation' of https://github.com/stoeckmann/util-linux
Karel Zak [Tue, 7 Apr 2026 08:53:51 +0000 (10:53 +0200)] 
Merge branch 'unshare_indentation' of https://github.com/stoeckmann/util-linux

* 'unshare_indentation' of https://github.com/stoeckmann/util-linux:
  unshare: Fix code indentation

3 weeks agoMerge branch 'fix_incomplete_filename_comp_umount' of https://github.com/cgoesche...
Karel Zak [Tue, 7 Apr 2026 08:47:30 +0000 (10:47 +0200)] 
Merge branch 'fix_incomplete_filename_comp_umount' of https://github.com/cgoesche/util-linux-fork

* 'fix_incomplete_filename_comp_umount' of https://github.com/cgoesche/util-linux-fork:
  bash-completion: complete relative path for filenames as well

3 weeks agoman: Document debug environment variables
Tobias Stoeckmann [Thu, 2 Apr 2026 15:31:03 +0000 (17:31 +0200)] 
man: Document debug environment variables

Document all debug environment variables affecting the tool. These
variables have an effect if the debug init function is called.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
3 weeks agomkswap: Fix --file chmod(2) check when file exists
Johannes Wüller [Sat, 4 Apr 2026 18:03:06 +0000 (20:03 +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.

3 weeks agochrt: (man) explain which kernel config options are needed for SCHED_EXT
Christian Goeschel Ndjomouo [Sun, 5 Apr 2026 19:14:07 +0000 (15:14 -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 <cgoesc2@wgu.edu>