From 546273a38488ae1d3cd7b8c3c10d603eaf63eb50 Mon Sep 17 00:00:00 2001 From: Lukas Czerner Date: Fri, 30 Jul 2021 12:16:20 +0200 Subject: [PATCH] New upstream release 1.46.3 Signed-off-by: Lukas Czerner --- .gitignore | 1 + ...dotdir-failure-on-big-endian-systems.patch | 63 +++++++++++++++++++ e2fsprogs.spec | 9 ++- sources | 2 +- 4 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 0001-e2fsck-fix-f_baddotdir-failure-on-big-endian-systems.patch diff --git a/.gitignore b/.gitignore index 47c12a5..05a3ab1 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ e2fsprogs-1.41.12.tar.gz /e2fsprogs-1.45.6.tar.xz /e2fsprogs-1.46.1.tar.xz /e2fsprogs-1.46.2.tar.xz +/e2fsprogs-1.46.3.tar.xz diff --git a/0001-e2fsck-fix-f_baddotdir-failure-on-big-endian-systems.patch b/0001-e2fsck-fix-f_baddotdir-failure-on-big-endian-systems.patch new file mode 100644 index 0000000..31d6fd4 --- /dev/null +++ b/0001-e2fsck-fix-f_baddotdir-failure-on-big-endian-systems.patch @@ -0,0 +1,63 @@ +From 225e5d093b519f9dbe9fcaacd995426f0e5194f6 Mon Sep 17 00:00:00 2001 +From: Theodore Ts'o +Date: Wed, 28 Jul 2021 13:51:13 -0400 +Subject: [PATCH] e2fsck: fix f_baddotdir failure on big-endian systems + +Commit 63f44aafb1f2 ("e2fsck: fix ".." more gracefully if possible") +changed the check_dot() function to try to avoid resetting the '..' +entry when the '.' entry is too large.. But if we do that, then on +big-endian systems, we need to try byte swapping the rest of the +directory entries, or else the f_baddotdir test will fail on +big-endian systems. + +Also add a check to avoid UBSAN warning when there is not enough space +at the end of the directory block for a directory entry, and so we can +potentially overflow some pointer arithmetic when trying to byte swap +the remainder of the (negative) space in the directory block. + +Fixes: 63f44aafb1f2 ("e2fsck: fix ".." more gracefully if possible") +Signed-off-by: Theodore Ts'o +--- + e2fsck/pass2.c | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git a/e2fsck/pass2.c b/e2fsck/pass2.c +index f00cb40e..bd974c55 100644 +--- a/e2fsck/pass2.c ++++ b/e2fsck/pass2.c +@@ -458,6 +458,12 @@ static int check_dot(e2fsck_t ctx, + ext2fs_dirent_set_name_len(nextdir, 0); + ext2fs_dirent_set_file_type(nextdir, + ftype); ++#ifdef WORDS_BIGENDIAN ++ } else { ++ (void) ext2fs_dirent_swab_in2(ctx->fs, ++ (char *) nextdir, ++ ctx->fs->blocksize - 12, 0); ++#endif + } + status = 1; + } +@@ -1370,12 +1376,14 @@ skip_checksum: + hash_in_dirent); + #ifdef WORDS_BIGENDIAN + if (need_reswab) { ++ unsigned int len; ++ + (void) ext2fs_get_rec_len(fs, +- dirent, &rec_len); +- ext2fs_dirent_swab_in2(fs, +- ((char *)dirent) + offset + rec_len, +- max_block_size - offset - rec_len, +- 0); ++ dirent, &len); ++ len += offset; ++ if (max_block_size > len) ++ ext2fs_dirent_swab_in2(fs, ++ ((char *)dirent) + len, max_block_size - len, 0); + } + #endif + dir_modified++; +-- +2.31.1 + diff --git a/e2fsprogs.spec b/e2fsprogs.spec index b1ae678..127b15b 100644 --- a/e2fsprogs.spec +++ b/e2fsprogs.spec @@ -1,7 +1,7 @@ Summary: Utilities for managing ext2, ext3, and ext4 file systems Name: e2fsprogs -Version: 1.46.2 -Release: 3%{?dist} +Version: 1.46.3 +Release: 1%{?dist} # License tags based on COPYING file distinctions for various components License: GPLv2 @@ -29,6 +29,7 @@ BuildRequires: systemd BuildRequires: make Patch0: 0001-remove-local-PATH.patch +Patch1: 0001-e2fsck-fix-f_baddotdir-failure-on-big-endian-systems.patch %description The e2fsprogs package contains a number of utilities for creating, @@ -158,6 +159,7 @@ managed device with some free space available in respective volume group. %setup -q %patch0 -p1 +%patch1 -p1 # Remove flawed tests rm -rf tests/m_rootdir_acl @@ -327,6 +329,9 @@ make fullcheck %{_udevdir}/96-e2scrub.rules %changelog +* Wed Jul 28 2021 Lukas Czerner - 1.46.3-1 +- New upstream release + * Wed Jul 21 2021 Fedora Release Engineering - 1.46.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index 4f884d3..532debe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (e2fsprogs-1.46.2.tar.xz) = 5297a4d7bf944806d8ee77227eac596b5e5efed2c665561d40094c40b9f321616c60975a2716f1499a9f72243df6e3b6e2267b98ec1fdc1dfd646d7be887fc4d +SHA512 (e2fsprogs-1.46.3.tar.xz) = 27da6e38d3463e7a283dacfb88a3210dd6d8c63f4d990db879f63bdf503aaa5c447ef0ccc566b71526c12a8ab0a7a6529014b1010be300ad56a6ad5ce9066196