From 6187d406bede6461086d6e5263f42ae4826675c4 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 21 May 2024 06:59:34 +0200 Subject: Merging upstream version 1.47.1. Signed-off-by: Daniel Baumann --- doc/RelNotes/v1.47.1.txt | 190 +++++++++++++++++++++++++++++++++++++++++++++++ doc/libext2fs.texinfo | 8 +- 2 files changed, 194 insertions(+), 4 deletions(-) create mode 100644 doc/RelNotes/v1.47.1.txt (limited to 'doc') diff --git a/doc/RelNotes/v1.47.1.txt b/doc/RelNotes/v1.47.1.txt new file mode 100644 index 0000000..4e7d455 --- /dev/null +++ b/doc/RelNotes/v1.47.1.txt @@ -0,0 +1,190 @@ +E2fsprogs 1.47.1 (May 20, 2024) +=============================== + +Updates/Fixes since v1.47.0: + +UI and Features +--------------- + +Add post-2038 handling when e2fsprogs is compiled on a system with a +64-bit time_t. + +Mke2fs -d can now support an input tar file if the libarchive library is +available. + +Add a udev rule which inhibits ext4 file systems from being automounted +by udisks. This avoid security issues from exposing potentially +maliciously fuzzed file systems from being mounted without being +inspected using fsck first. Distributions can of course override this +feature inhibition, but then they get to own the security vulnerability +liability. Upstream ext4 file system developers are putting +distributions on notice that blindly automounting file systems from +(potentially) USB thumb drives which clueless users may have picked up +in a parking lot is a ***bad*** idea, no matter what clueless enterprise +Linux product managers might think. + +The debugfs 'hash' command will use the hash seed and algorithm from the +superblock if debugfs has a file system open, instead of requiring the +user to specify those parameters explicitly as options to the hash +command. Also add a hash -v option which prints the hash parameters so +the user knows what parameters were used when calculating the hash for +the filename. + +Teach mke2fs a new extended options, root_perms, which overrides the +permissions for the root directory for the new file system. + + +Fixes +----- + +When various e2fsprogs are replaying the journal (tune2fs, fuse2fs, +e2fsck, etc.) save any error indicator in the superblock, so it can be +restored afterwards. Most of the time (at least with modern kernels) if +file system corruptions are discovered, the superblock update is +journalled. However, if the journal is aborted or the journal commit +fails, the error code might only be written in the superblock, so we +need to save it so that a subsequent fsck can repair the file system +after the journal replay. + +When mke2fs was creating a file system with the orphan file inode, it +tries to read and truncate the orphan inode before it has been +initialized. If there is an inode from a previous file system located +there (as opposed to a all zeroes inode table block caused by a discard +of the flash device or a newly created cloud block device or fille +image), it can fail with bad checksum error, aborting the mke2fs +operation. Fix this in ext2fs_create_orphan_file() not trying to +truncate the orphan file if it is newly allocated (which will always be +the case when mke2fs calls this library function). + +In the case where e2fsck comes across an orphan file which is empty but +the orphan_present feature is set, in preen mode, e2fsck will now clear +the orphan_present feature flag silently. + +E2fsck will now perform more consistency checks on EA (extended +attribute value) inodes. + +Fix a big where e2fsck could potentially leak an acl block when +releasing an orphan inode. + +Avoid a divide by zero crash in libext2fs if the container +infrastructure, such as lxcfs, reports that the system has zero CPU's +via sysconf(_SC_NPROCESSORS_CONF). + +When resize2fs is performing an online resize, it's possible for reading +the superblock can race with a kernel modifying the superblock with the +checksum being invalid and causing the resize to fail with an bad +superblock checksum in the buffer cache. Have resize2fs open the file +system using O_DIRECT to avoid the superblock with an invalid checksum. + +Fix a bug where a checksum failure in an htree directory can cause +e2fsck's preen mode to abort unnecessarily. + +Fix e2fsck's handling of an invalid symlink in an inline_data directory. + +Fix e4crypt from issuing a spurious "success" error message when trying +to set a policy on a non-directory. + +Fix a potential infinite loop in debugfs's logdump command in some edge +cases. + +Fix e2fsck to correctly update quota usage after optimizing directories +or deleting corrupted inodes. + +Fix fuse2fs so that directories are created with the correct permissions +instead of having the other and group write permissions masked off. + +Fix a potential e2fsck divide by zero crash caused by a maliciously +fuzzed file system. + +Fix dumpe2fs to report free block ranges correctly for bigalloc file +systems. + +Fix resize2fs where resizing a bigalloc file system can result in the +free cluster count in the last block group and the total free clusters +count to be incorrect. + +Avoid spurious e2scrub failures caused by trying to scrub file syustems +that do not have the journal enabled, and by aborting scrub runs while +upgrading the e2fsprogs package on Debian/Ubuntu. + +Teach tune2fs to detect a file system which is mounted but is not +mentioned in the mount namespace where tune2fs is run by treating a +block device which is busy as if it is mounted. + +If tune2fs can't find the mountpoint for a file system which is +apparently mounted (perhaps because it's not present in the current +mount namespace) when attempting to set the label or UUID in the +superblock, fall back to the old method of modifying block device and +silence printing any error messages. + +If both the primary superblock and first block group's backup superblock +are corrupted, e2fsck will now try additional backup superblocks if they +are available. + +Avoid mke2fs from creating an invalid file system with an insufficient +number of inodes when creating a file system which is very small (100k), +a block size of 1k, and an inode size of 256 bytes. + +Fix a potential deadlock caused by e2fsck being run in Direct I/O mode +with the threading optimization enabled. + +Fix e2scrub when the "systemctl" package is installed instead of +systemd. (Addresses Debian Bug #1070107) + +Fixed/improved various Debian packaging issues. + +Update and clarify various man pages. (Addresses Debian Bugs #1038286, +#1041115) + + + +Performance, Internal Implementation, Development Support etc. +-------------------------------------------------------------- + +Add support for SOURCE_DATE_EPOCH environment variable per the +specification https://reproducible-builds.org/specs/source-date-epoch + +Improve resize2fs's performance by eliminating extra cache flushes. + +Improve mke2fs's performance when zeroing a large number of inode table +blocks (when lazy inode table initialization is not enabled) by batching +calls to ext2fs_zero_blocks. + +Use a safe_getenv function for all calls to fetch the environment +variable in libext2fs. + +Fix a massive buffer overrun bug in ext2fs_image_super_read(). This +function isn't actually used by e2image, and it's unlikely that there +are any users of this function since the most common way the e2image +file is read is via ext2fs_openfs() with the EXT2_FLAG_IMAGE_FILE, which +doesn't actually use ext2fs_image_super_read(). + +Add support for building fuse2fs using Fuse V3. + +Use FORTIFY_SOURCE=3 when hardening is enabled for more protection. + +Add support for continuous integration tests using Github Actions. + +Fix Windows-specific portability bugs to allow mke2fs to create a file +system in a file which doesn't yet exist and to support file systems +larger than 2GB. + +Fix a FreeBSD 14 build failure caused by changing the function signature +of qsort_r() to be aligned with the POSIX and glibc definition of +qsort_r(). + +Fix various portability issues for the Linux 32-bit musl C library, +GNU/Hurd and Android. (Addresses Debian Bug: #1056145) + +Fix various portability problems in the regression test suite. + +Fix various sanitizer, static code analysis, and compiler warnings. + +Synchronized changes from Android's AOSP e2fsprogs tree. + +Updated config.guess and config.sub with newer versions from the FSF. + +Add Romainian translation. + +Update Chinese, Czech, French, Malay, Polish, Swedish, and Ukrainian +translations. diff --git a/doc/libext2fs.texinfo b/doc/libext2fs.texinfo index 5d4b053..c9931da 100644 --- a/doc/libext2fs.texinfo +++ b/doc/libext2fs.texinfo @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @c %**start of header @setfilename libext2fs.info -@settitle The EXT2FS Library (version 1.47.0) +@settitle The EXT2FS Library (version 1.47.1) @synindex tp fn @comment %**end of header @@ -60,8 +60,8 @@ by the author. @title The EXT2FS Library @subtitle The EXT2FS Library -@subtitle Version 1.47.0 -@subtitle February 2023 +@subtitle Version 1.47.1 +@subtitle May 2024 @author by Theodore Ts'o @@ -101,7 +101,7 @@ by the Foundation. @top The EXT2FS Library -This manual documents the EXT2FS Library, version 1.47.0. +This manual documents the EXT2FS Library, version 1.47.1. @menu * Introduction to the EXT2FS Library:: -- cgit v1.2.3