Karel Zak [Mon, 23 Jan 2023 13:09:27 +0000 (14:09 +0100)]
Merge branch 'bcachefs-fuzz' of https://github.com/t-8ch/util-linux
* 'bcachefs-fuzz' of https://github.com/t-8ch/util-linux:
libblkid: bcachefs: limit maximum size of read superblock
libblkid: iso9660: don't warn on isonum mismatch
libblkid: bcachefs: fix member_field_end
libblkid: bcachefs: validate size of member field
libblkid: bcachefs: fix field type
libblkid: bcachefs: add reproducer for oss-fuzz 55282
libblkid: bcachefs: fix endless loop
Samanta Navarro [Fri, 20 Jan 2023 11:57:15 +0000 (11:57 +0000)]
fsck.cramfs: print correct error on 32-bit systems
On 32-bit systems the file length check does not handle files correctly
which are larger than 4 GB. Use an unsigned long long which is already
in place for blkdev_get_size.
ThomasKaiser [Sun, 22 Jan 2023 09:36:01 +0000 (10:36 +0100)]
Add HiSilicon's 0x48/0xd40 Cortex-A76 variant.
Both Kirin 980 and Kirin 810 feature big cores with 0x48/0xd40 ID though they are marketed/documented as Cortex-A76 by HiSilicon themselves. Kirin 980 shows a r1p0 stepping while newer 810 has r3p0.
ThomasKaiser [Sat, 21 Jan 2023 17:03:11 +0000 (18:03 +0100)]
Add 53/002:Samsung Exynos-m3
ID 002 for the Exynos-m3 core seems weird since Exynos-m1 had 001 but Samsung's Mongoose line differs only by stepping between M1 and M2
* Mongoose 1, for example [Exynos 8890](https://github.com/ThomasKaiser/sbc-bench/blob/master/results/Exynos-8890-highperformance.cpuinfo): Exynos-m1 / r1p1
* Mongoose 2, for example [Exynos 8895](https://github.com/ThomasKaiser/sbc-bench/blob/master/results/Exynos-8895.cpuinfo): Exynos-m1 / r4p0
* Mongoose 3, for example [Exynos 9810](https://github.com/ThomasKaiser/sbc-bench/blob/master/results/Exynos-9810.cpuinfo): Exynos-m3 / r1p0
Karel Zak [Fri, 20 Jan 2023 14:20:55 +0000 (15:20 +0100)]
lsfd: remove strcpy(), keep things based on sizeof()
* use safe xstrncpy() rather than strcpy()
* use sizeof() for static buffers rather than macro with real size
(this solution is more robust for future code changes)
* use xcalloc() to zeroize allocated memory
Samanta Navarro [Fri, 20 Jan 2023 11:57:15 +0000 (11:57 +0000)]
fsck.cramfs: print correct error on 32-bit systems
On 32-bit systems the file length check does not handle files correctly
which are larger than 4 GB. Use an unsigned long long which is already
in place for blkdev_get_size.
It's probably typo in the original path (too many brackets:-)). Let's
be explicit about the types used in the calculation. '1 << n' means
the left shift is on 'int', but we need '(t)1 << n'.
Karel Zak [Tue, 17 Jan 2023 15:15:11 +0000 (16:15 +0100)]
Merge branch 'blkdev' of https://github.com/ferivoz/util-linux
* 'blkdev' of https://github.com/ferivoz/util-linux:
lib/blkdev: use off_t for max values
lib/blkdev: set errno in more cases
lib/blkdev: handle interrupted read call
Samanta Navarro [Fri, 13 Jan 2023 11:51:52 +0000 (11:51 +0000)]
lib/blkdev: set errno in more cases
Applications evaluate errno in case of a -1 return value. Examples
within util-linux are fsck.cramfs and mkfs.minix. Set errno more often
to offer reasonable error codes to the application and user.
Samanta Navarro [Fri, 13 Jan 2023 11:50:40 +0000 (11:50 +0000)]
lib/blkdev: handle interrupted read call
The read call may fail if it is interrupted by a signal. Do not assume
that we have reached the end of the underlying block device because of
this. Use read_all which retries in these cases.
Samanta Navarro [Fri, 13 Jan 2023 11:53:41 +0000 (11:53 +0000)]
mkswap: do not use uninitialized stack value
If blkdev_get_size fails, then size is not set. Exit with an error code
and indicate what went wrong instead of continuing with random stack
content.
Proof of Concept:
```
$ mkswap /dev/null
mkswap: warning: truncating swap area to 17179869180 KiB
mkswap: /dev/null: insecure permissions 0666, fix with: chmod 0600 /dev/null
mkswap: unable to assign device to libblkid probe
```
The first output line depends on stack content and sometimes does not
show up at all. Abort operation if argument is neither regular file nor
block device.
Karel Zak [Thu, 12 Jan 2023 14:33:09 +0000 (15:33 +0100)]
include: add missing license lines
The header files are usually based on code from lib/. This commit
copies relevant license headers from lib/ to include/ to keep
things consistent. The very generic things (e.g. MBR definitions)
are always public domain.
Fixes: https://github.com/util-linux/util-linux/issues/2010 Signed-off-by: Karel Zak <kzak@redhat.com>
Samanta Navarro [Wed, 11 Jan 2023 11:57:21 +0000 (11:57 +0000)]
login: never send signals to init
If the signal handler is triggered after a failed fork attempt, then
child_pid will be -1. This in turn leads to a positive test and a
subsequent call of kill(1, signal). If signal was SIGTERM, then there
will be also another kill(1, SIGHUP) call.
Test explicitly for a positive child_pid value to prevent these cases.
Chris Webb [Tue, 10 Jan 2023 13:58:58 +0000 (13:58 +0000)]
unshare: support --map-users=inner:outer:count as well as outer,inner,count
The argument ordering in /proc/self/[gu]id_map and mount -o X-mount.idmap
is consistently inner:outer:count but unshare --map-users and --map-groups
were originally defined to expect outer,inner,count instead.
To reduce confusion caused by this mismatch, support a colon-separated
inner:outer:count ordering as well as the original comma-separated
outer,inner,count argument format. Although we accept both formats, only
document the new one in the usage text and deprecate the old format in
the man page.
Fixes: https://github.com/util-linux/util-linux/issues/1988 Signed-off-by: Chris Webb <chris@arachsys.com>
Karel Zak [Tue, 10 Jan 2023 11:40:47 +0000 (12:40 +0100)]
libmount: use MNT_ERR_APPLYFLAGS for failed mount_setattr()
The classic mount(2) based version uses MNT_ERR_APPLYFLAGS when not
able to set flags and errno is EINVAL. This is expected by
mnt_context_get_mount_excode() where libmount generates error messages
for mount(8).
Expected is:
# mount --make-private /mnt/test
mount: /mnt/test: not mount point or bad option.
rather than generic error:
mount: /mnt/test: wrong fs type, bad option, bad superblock on none ...
Karel Zak [Tue, 10 Jan 2023 10:30:55 +0000 (11:30 +0100)]
Merge branch 'waitpid' of https://github.com/t-8ch/util-linux
* 'waitpid' of https://github.com/t-8ch/util-linux:
waitpid: adapt bash-completion for current functionality
po-man: add waitpid.1 manpage
waitpid: add support for already exited PIDs
Karel Zak [Mon, 9 Jan 2023 11:47:31 +0000 (12:47 +0100)]
Merge branch 'po-man/fixes' of https://github.com/t-8ch/util-linux
* 'po-man/fixes' of https://github.com/t-8ch/util-linux:
sr.po: fix mkfs.cramfs translation
build: propagate failures from asciidoctor
po-man: remove unicode dash from manpage NAME section
sr.po: add missing dash to manpage header
po-man: always convert common manpage fragments
po-man: enable out of tree builds
autotools: add asciidoctor-includetracker to distributed files
Karel Zak [Mon, 9 Jan 2023 11:35:03 +0000 (12:35 +0100)]
Merge branch 'schedutils' of https://github.com/chaiken/util-linux
* 'schedutils' of https://github.com/chaiken/util-linux:
schedutils: better illustrate the usage of cpu-lists with taskset
schedutils: clarify meaning of taskset return code
schedutils: clarify confusing mask example in taskset man page