]> git.ipfire.org Git - thirdparty/e2fsprogs.git/blob - doc/RelNotes/v1.47.1.txt
82998f984c4c4b0b1052609f285138108ff26621
[thirdparty/e2fsprogs.git] / doc / RelNotes / v1.47.1.txt
1 E2fsprogs 1.47.1 (April 26, 2024)
2 =================================
3
4 Updates/Fixes since v1.47.0:
5
6 UI and Features
7 ---------------
8
9 Add post-2038 handling when e2fsprogs is compiled on a system with a
10 64-bit time_t.
11
12 Mke2fs -d can now support an input tar file if the libarchive library is
13 available.
14
15 Add a udev rule which inhibits ext4 file systems from being automounted
16 by udisks. This avoid security issues from exposing potentially
17 maliciously fuzzed file systems from being mounted without being
18 inspected using fsck first. Distributions can of course override this
19 feature inhibition, but then they get to own the security vulnerability
20 liability. Upstream ext4 file system developers are putting
21 distributions on notice that blindly automounting file systems from
22 (potentially) USB thumb drives which clueless users may have picked up
23 in a parking lot is a ***bad*** idea, no matter what clueless enterprise
24 Linux product managers might think.
25
26 The debugfs 'hash' command will use the hash seed and algorithm from the
27 superblock if debugfs has a file system open, instead of requiring the
28 user to specify those parameters explicitly as options to the hash
29 command. Also add a hash -v option which prints the hash parameters so
30 the user knows what parameters were used when calculating the hash for
31 the filename.
32
33 Teach mke2fs a new extended options, root_perms, which overrides the
34 permissions for the root directory for the new file system.
35
36
37 Fixes
38 -----
39
40 When various e2fsprogs are replaying the journal (tune2fs, fuse2fs,
41 e2fsck, etc.) save any error indicator in the superblock, so it can be
42 restored afterwards. Most of the time (at least with modern kernels) if
43 file system corruptions are discovered, the superblock update is
44 journalled. However, if the journal is aborted or the journal commit
45 fails, the error code might only be written in the superblock, so we
46 need to save it so that a subsequent fsck can repair the file system
47 after the journal replay.
48
49 When mke2fs was creating a file system with the orphan file inode, it
50 tries to read and truncate the orphan inode before it has been
51 initialized. If there is an inode from a previous file system located
52 there (as opposed to a all zeroes inode table block caused by a discard
53 of the flash device or a newly created cloud block device or fille
54 image), it can fail with bad checksum error, aborting the mke2fs
55 operation. Fix this in ext2fs_create_orphan_file() not trying to
56 truncate the orphan file if it is newly allocated (which will always be
57 the case when mke2fs calls this library function).
58
59 In the case where e2fsck comes across an orphan file which is empty but
60 the orphan_present feature is set, in preen mode, e2fsck will now clear
61 the orphan_present feature flag silently.
62
63 When resize2fs is performing an online resize, it's possible for reading
64 the superblock can race with a kernel modifying the superblock with the
65 checksum being invalid and causing the resize to fail with an bad
66 superblock checksum in the buffer cache. Have resize2fs open the file
67 system using O_DIRECT to avoid the superblock with an invalid checksum.
68
69 Fix a bug where a checksum failure in an htree directory can cause
70 e2fsck's preen mode to abort unnecessarily.
71
72 Fix e2fsck's handling of an invalid symlink in an inline_data directory.
73
74 Fix e4crypt from issuing a spurious "success" error message when trying
75 to set a policy on a non-directory.
76
77 Fix a potential infinite loop in debugfs's logdump command in some edge
78 cases.
79
80 Fix e2fsck to correctly update quota usage after optimizing directories
81 or deleting corrupted inodes.
82
83 Fix fuse2fs so that directories are created with the correct permissions
84 instead of having the other and group write permissions masked off.
85
86 Fix a potential e2fsck divide by zero crash caused by a maliciously
87 fuzzed file system.
88
89 Fix dumpe2fs to report free block ranges correctly for bigalloc file
90 systems.
91
92 Fix resize2fs where resizing a bigalloc file system can result in the
93 free cluster count in the last block group and the total free clusters
94 count to be incorrect.
95
96 Avoid spurious e2scrub failures caused by trying to scrub file syustems
97 that do not have the journal enabled, and by aborting scrub runs while
98 upgrading the e2fsprogs package on Debian/Ubuntu.
99
100 Teach tune2fs to detect a file system which is mounted but is not
101 mentioned in the mount namespace where tune2fs is run by treating a
102 block device which is busy as if it is mounted.
103
104 If tune2fs can't find the mountpoint for a file system which is
105 apparently mounted (perhaps because it's not present in the current
106 mount namespace) when attempting to set the label or UUID in the
107 superblock, fall back to the old method of modifying block device and
108 silence printing any error messages.
109
110 If both the primary superblock and first block group's backup superblock
111 are corrupted, e2fsck will now try additional backup superblocks if they
112 are available.
113
114 Avoid mke2fs from creating an invalid file system with an insufficient
115 number of inodes when creating a file system which is very small (100k),
116 a block size of 1k, and an inode size of 256 bytes.
117
118 Fix a potential deadlock caused by e2fsck being run in Direct I/O mode
119 with the threading optimization enabled.
120
121 Fixed/improved various Debian packaging issues.
122
123 Update and clarify various man pages. (Addresses Debian Bug #1038286)
124
125
126
127 Performance, Internal Implementation, Development Support etc.
128 --------------------------------------------------------------
129
130 Add support for SOURCE_DATE_EPOCH environment variable per the
131 specification https://reproducible-builds.org/specs/source-date-epoch
132
133 Improve resize2fs's performance by eliminating extra cache flushes.
134
135 Improve mke2fs's performance when zeroing a large number of inode table
136 blocks (when lazy inode table initialization is not enabled) by batching
137 calls to ext2fs_zero_blocks.
138
139 Use a safe_getenv function for all calls to fetch the environment
140 variable in libext2fs.
141
142 Fix a massive buffer overrun bug in ext2fs_image_super_read(). This
143 function isn't actually used by e2image, and it's unlikely that there
144 are any users of this function since the most common way the e2image
145 file is read is via ext2fs_openfs() with the EXT2_FLAG_IMAGE_FILE, which
146 doesn't actually use ext2fs_image_super_read().
147
148 Add support for building fuse2fs using Fuse V3.
149
150 Use FORTIFY_SOURCE=3 when hardening is enabled for more protection.
151
152 Add support for continuous integration tests using Github Actions.
153
154 Fix Windows-specific portability bugs to allow mke2fs to create a file
155 system in a file which doesn't yet exist and to support file systems
156 larger than 2GB.
157
158 Fix a FreeBSD 14 build failure caused by changing the function signature
159 of qsort_r() to be aligned with the POSIX and glibc definition of
160 qsort_r().
161
162 Fix various portability issues for the Linux 32-bit musl C library,
163 GNU/Hurd and Android. (Addresses Debian Bug: #1056145)
164
165 Fix various portability problems in the regression test suite.
166
167 Fix various sanitizer, static code analysis, and compiler warnings.
168
169 Add Romainian translation.
170
171 Update Malay translation.