| 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. |