[Bug 1842437] Re: Xenial: libblkid: fix false-positive/misdetection of nilfs2 filesystem with udev
Mauricio Faria de Oliveira
mfo at canonical.com
Tue Sep 3 14:55:02 UTC 2019
modified package:
--------
# dpkg -s libblkid1 | grep ^Version:
Version: 2.27.1-6ubuntu3.8+test20190903b1
# LIBBLKID_DEBUG=all udevadm test-builtin blkid /sys/block/loop0/loop0p1
...
7289: libblkid: LOWPROBE: [28] ext4:
7289: libblkid: LOWPROBE: reuse buffer: off=1024 len=1024 pr=0x5604292b7ec0
7289: libblkid: LOWPROBE: magic sboff=56, kboff=1
7289: libblkid: LOWPROBE: call probefunc()
7289: libblkid: LOWPROBE: reuse buffer: off=1024 len=1024 pr=0x5604292b7ec0
7289: libblkid: PROBE: ext2_sb.compat = 0000003C:00000246:0000007B
7289: libblkid: LOWPROBE: assigning UUID [superblocks]
7289: libblkid: LOWPROBE: assigning VERSION [superblocks]
7289: libblkid: LOWPROBE: assigning TYPE [superblocks]
7289: libblkid: LOWPROBE: assigning USAGE [superblocks]
...
7289: libblkid: LOWPROBE: [63] nilfs2:
7289: libblkid: LOWPROBE: call probefunc()
7289: libblkid: LOWPROBE: reuse buffer: off=1024 len=1024 pr=0x5604292b7ec0
7289: libblkid: LOWPROBE: reuse buffer: off=1072689152 len=4096 pr=0x5604292b7ec0
7289: libblkid: LOWPROBE: [64] exfat:
...
7289: libblkid: LOWPROBE: returning UUID value
ID_FS_UUID=bac40f54-41c7-4a5a-a3f2-87bf23546e9c
...
# echo $?
0
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to util-linux in Ubuntu.
https://bugs.launchpad.net/bugs/1842437
Title:
Xenial: libblkid: fix false-positive/misdetection of nilfs2 filesystem
with udev
Status in util-linux package in Ubuntu:
Fix Released
Status in util-linux source package in Xenial:
In Progress
Bug description:
The nilfs filesystem has a backup superblock at the end of the device.
If the magic number is coincidentally found at the right position
and the filesystem is on a partition/not-wholedisk device,
the only check left is for checksum verification,
which is explicitly ignored in 'udev built-in blkid'.
This causes blkid to detect one actually valid filesystem with a
superblock at the beginning of the device (e.g., ext4), and then
an invalid nilfs2 filesystem due to a coincidental magic number
at the end of the device.
And this causes blkid to break out of the safeprobe routine
(which expects a single filesystem to be detected), and not
print the UUIDs, thus not creating /dev/disk/by-uuid/ links
which prevent mounting the partition by-uuid at boot time,
causing emergency shell/boot failures.
This upstream fix resolved the problem by introducing a check
for the 'bytes' paramenters in the superblock, which is read
from disk, and turns out to have an out-of-range value.
- 'liblkid: Add length check in probe_nilfs2 before crc32'
https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=ac681a310c32319423297544833932f4d689a7a2
$ git describe --contains ac681a310c32319423297544833932f4d689a7a2
v2.29-rc1~172
Xenial, which is v2.27.1-based, is the only release that needs it.
Bionic is v2.31.1, so all post-Xenial supported releases have it.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1842437/+subscriptions
More information about the foundations-bugs
mailing list