summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2016-06-16 18:00:43 -0500
committerEric Sandeen <sandeen@redhat.com>2016-06-16 18:00:43 -0500
commitacca0241b0e46f4af2af6292d6013d4cfba7e5be (patch)
tree65b57ff719efb7e4e0b6e1cc3bd93e9e58807d40
parent14038a7ff6c5d23f2fbb7fa5aebe0c9f752f4f31 (diff)
downloade2fsprogs-acca0241b0e46f4af2af6292d6013d4cfba7e5be.tar.gz
e2fsprogs-acca0241b0e46f4af2af6292d6013d4cfba7e5be.tar.xz
e2fsprogs-acca0241b0e46f4af2af6292d6013d4cfba7e5be.zip
Fix e2undo endian issues
-rw-r--r--e2fsprogs.spec7
-rw-r--r--e2undo-endian.patch62
2 files changed, 68 insertions, 1 deletions
diff --git a/e2fsprogs.spec b/e2fsprogs.spec
index 8b13d33..907b185 100644
--- a/e2fsprogs.spec
+++ b/e2fsprogs.spec
@@ -1,7 +1,7 @@
Summary: Utilities for managing ext2, ext3, and ext4 filesystems
Name: e2fsprogs
Version: 1.43.1
-Release: 1%{?dist}
+Release: 2%{?dist}
# License tags based on COPYING file distinctions for various components
License: GPLv2
@@ -11,6 +11,7 @@ Source1: ext2_types-wrapper.h
Source2: e2fsck.conf
Patch1: e2fsprogs-1.40.4-sb_feature_check_ignore.patch
+Patch2: e2undo-endian.patch
Url: http://e2fsprogs.sourceforge.net/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -151,6 +152,7 @@ It was originally inspired by the Multics SubSystem library.
# mildly unsafe but 'til I get something better, avoid full fsck
# after an selinux install...
%patch1 -p1 -b .featurecheck
+%patch2 -p1
%build
%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
@@ -332,6 +334,9 @@ exit 0
%{_libdir}/pkgconfig/ss.pc
%changelog
+* Thu Jun 16 2016 Eric Sandeen <sandeen@redhat.com> 1.43.1-2
+- Fix e2undo endian issues (#1344636)
+
* Wed Jun 08 2016 Eric Sandeen <sandeen@redhat.com> 1.43.1-1
- New upstream release
diff --git a/e2undo-endian.patch b/e2undo-endian.patch
new file mode 100644
index 0000000..0253fc7
--- /dev/null
+++ b/e2undo-endian.patch
@@ -0,0 +1,62 @@
+[PATCH] e2undo: fix endian issues
+
+Two new e2undo issues exist in the latest release on big endian
+machines.
+
+From sparse check:
+
+undo_io.c:157:26: warning: invalid assignment: |=
+undo_io.c:157:26: left side has type restricted __le32
+undo_io.c:157:26: right side has type int
+undo_io.c:161:26: warning: invalid assignment: &=
+undo_io.c:161:26: left side has type restricted __le32
+undo_io.c:161:26: right side has type int
+
+e2undo.c:211:16: warning: cast to restricted __le64
+e2undo.c:211:16: warning: cast from restricted blk64_t
+e2undo.c:212:16: warning: cast to restricted __le64
+e2undo.c:212:16: warning: cast from restricted blk64_t
+
+Addresses-RedHat-Bugzilla: 1344636
+Signed-off-by: Eric Sandeen <sandeen@redhat.com>
+---
+
+diff --git a/lib/ext2fs/undo_io.c b/lib/ext2fs/undo_io.c
+index f921218..776d5b8 100644
+--- a/lib/ext2fs/undo_io.c
++++ b/lib/ext2fs/undo_io.c
+@@ -154,11 +154,11 @@ struct undo_private_data {
+ #define E2UNDO_FEATURE_COMPAT_FS_OFFSET 0x1 /* the filesystem offset */
+
+ static inline void e2undo_set_feature_fs_offset(struct undo_header *header) {
+- header->f_compat |= E2UNDO_FEATURE_COMPAT_FS_OFFSET;
++ header->f_compat |= ext2fs_le32_to_cpu(E2UNDO_FEATURE_COMPAT_FS_OFFSET);
+ }
+
+ static inline void e2undo_clear_feature_fs_offset(struct undo_header *header) {
+- header->f_compat &= ~E2UNDO_FEATURE_COMPAT_FS_OFFSET;
++ header->f_compat &= ~ext2fs_le32_to_cpu(E2UNDO_FEATURE_COMPAT_FS_OFFSET);
+ }
+
+ static io_manager undo_io_backing_manager;
+diff --git a/misc/e2undo.c b/misc/e2undo.c
+index a8cb000..6fb6e44 100644
+--- a/misc/e2undo.c
++++ b/misc/e2undo.c
+@@ -208,8 +208,7 @@ static int key_compare(const void *a, const void *b)
+
+ ka = a;
+ kb = b;
+- return ext2fs_le64_to_cpu(ka->fsblk) -
+- ext2fs_le64_to_cpu(kb->fsblk);
++ return ka->fsblk - kb->fsblk;
+ }
+
+ static int e2undo_setup_tdb(const char *name, io_manager *io_ptr)
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
+