forked from pool/e2fsprogs
- libext2fs-Fix-fsync-2-detection.patch: libext2fs: Fix fsync(2) detection
(bsc#1038194) - Add references from old package: Fix resize2fs-Fix-32-64-bit-overflow-when-multiplying-by-blocks-cl.patch in 1.42.12 (bsc#1009532) Fix libext2fs-fix-potential-buffer-overflow-in-closefs.patch in 1.42.13 (bsc#918346 CVE-2015-1572) Fix libext2fs-avoid-buffer-overflow-if-s_first_meta_bg-i.patch in 1.42.12 (bsc#915402 CVE-2015-0247) Got specfile fix through Factory (bsc#960273) Fix libext2fs-don-t-ignore-fsync-errors.patch in 1.43.4 (bsc#1038194) Rev SUSE:SLE-12-SP4:GA/2 Md5 9ff012c479fd9bfdaa0270cb441edbaf 2018-06-08 14:13:20 rtsvetkov None
This commit is contained in:
parent
3e56c90bb6
commit
9c3893cce8
@ -1,47 +0,0 @@
|
|||||||
From ebdf895b43a1ce499e4d2556a201e2a753fc422f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
Date: Wed, 8 Oct 2014 11:18:41 -0400
|
|
||||||
Subject: [PATCH] e2fsck: fix free pointer dereferences
|
|
||||||
References: bnc#912229
|
|
||||||
|
|
||||||
Commit 47fee2ef6a23a introduces some free pointer dereference bugs by
|
|
||||||
not clearing ctx->fs after calling ext2fs_close_free().
|
|
||||||
|
|
||||||
Reported-by: Matthias Andree <mandree@FreeBSD.org>
|
|
||||||
Cc: Lukas Czerner <lczerner@redhat.com>
|
|
||||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
---
|
|
||||||
e2fsck/unix.c | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
Index: e2fsprogs-1.42.11/e2fsck/unix.c
|
|
||||||
===================================================================
|
|
||||||
--- e2fsprogs-1.42.11.orig/e2fsck/unix.c
|
|
||||||
+++ e2fsprogs-1.42.11/e2fsck/unix.c
|
|
||||||
@@ -459,7 +459,7 @@ static void check_if_skip(e2fsck_t ctx)
|
|
||||||
}
|
|
||||||
log_out(ctx, "\n");
|
|
||||||
skip:
|
|
||||||
- ext2fs_close_free(&fs);
|
|
||||||
+ ext2fs_close_free(&ctx->fs);
|
|
||||||
e2fsck_free_context(ctx);
|
|
||||||
exit(FSCK_OK);
|
|
||||||
}
|
|
||||||
@@ -1465,7 +1465,7 @@ failure:
|
|
||||||
/*
|
|
||||||
* Restart in order to reopen fs but this time start mmp.
|
|
||||||
*/
|
|
||||||
- ext2fs_close_free(&fs);
|
|
||||||
+ ext2fs_close_free(&ctx->fs);
|
|
||||||
flags &= ~EXT2_FLAG_SKIP_MMP;
|
|
||||||
goto restart;
|
|
||||||
}
|
|
||||||
@@ -1695,7 +1695,7 @@ no_journal:
|
|
||||||
_("while resetting context"));
|
|
||||||
fatal_error(ctx, 0);
|
|
||||||
}
|
|
||||||
- ext2fs_close_free(&fs);
|
|
||||||
+ ext2fs_close_free(&ctx->fs);
|
|
||||||
goto restart;
|
|
||||||
}
|
|
||||||
if (run_result & E2F_FLAG_CANCEL) {
|
|
@ -1,34 +0,0 @@
|
|||||||
From a82d88ea99d3c5c21bf538b886da0482bf143fd5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Darrick J. Wong" <darrick.wong@oracle.com>
|
|
||||||
Date: Thu, 24 Jul 2014 21:03:54 -0400
|
|
||||||
Subject: [PATCH] e2fsck: free ctx->fs, not fs, at the end of fsck
|
|
||||||
References: bnc#912229
|
|
||||||
|
|
||||||
When we call ext2fs_close_free at the end of main(), we need to supply
|
|
||||||
the address of ctx->fs, because the subsequent e2fsck_free_context
|
|
||||||
call will try to access ctx->fs (which is now set to a freed block) to
|
|
||||||
see if it should free the directory block list. This is clearly not
|
|
||||||
desirable, so fix the problem.
|
|
||||||
|
|
||||||
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
|
|
||||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
---
|
|
||||||
e2fsck/unix.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/e2fsck/unix.c b/e2fsck/unix.c
|
|
||||||
index 8d1bdf3e03cb..fc05bdeec257 100644
|
|
||||||
--- a/e2fsck/unix.c
|
|
||||||
+++ b/e2fsck/unix.c
|
|
||||||
@@ -1774,7 +1774,7 @@ no_journal:
|
|
||||||
io_channel_flush(ctx->fs->io);
|
|
||||||
print_resource_track(ctx, NULL, &ctx->global_rtrack, ctx->fs->io);
|
|
||||||
|
|
||||||
- ext2fs_close_free(&fs);
|
|
||||||
+ ext2fs_close_free(&ctx->fs);
|
|
||||||
free(ctx->journal_name);
|
|
||||||
|
|
||||||
e2fsck_free_context(ctx);
|
|
||||||
--
|
|
||||||
2.1.2
|
|
||||||
|
|
@ -1,188 +0,0 @@
|
|||||||
Index: e2fsck/Makefile.in
|
|
||||||
===================================================================
|
|
||||||
--- e2fsck/Makefile.in.orig
|
|
||||||
+++ e2fsck/Makefile.in
|
|
||||||
@@ -61,7 +61,7 @@ OBJS= crc32.o dict.o unix.o e2fsck.o sup
|
|
||||||
pass3.o pass4.o pass5.o journal.o badblocks.o util.o dirinfo.o \
|
|
||||||
dx_dirinfo.o ehandler.o problem.o message.o quota.o recovery.o \
|
|
||||||
region.o revoke.o ea_refcount.o rehash.o profile.o prof_err.o \
|
|
||||||
- logfile.o sigcatcher.o $(MTRACE_OBJ)
|
|
||||||
+ logfile.o sigcatcher.o splash.o $(MTRACE_OBJ)
|
|
||||||
|
|
||||||
PROFILED_OBJS= profiled/dict.o profiled/unix.o profiled/e2fsck.o \
|
|
||||||
profiled/super.o profiled/pass1.o profiled/pass1b.o \
|
|
||||||
@@ -100,6 +100,7 @@ SRCS= $(srcdir)/e2fsck.c \
|
|
||||||
$(srcdir)/rehash.c \
|
|
||||||
$(srcdir)/region.c \
|
|
||||||
$(srcdir)/profile.c \
|
|
||||||
+ $(srcdir)/splash.c \
|
|
||||||
$(srcdir)/sigcatcher.c \
|
|
||||||
$(srcdir)/logfile.c \
|
|
||||||
prof_err.c \
|
|
||||||
@@ -519,6 +520,7 @@ region.o: $(srcdir)/region.c $(top_build
|
|
||||||
$(srcdir)/profile.h prof_err.h $(top_srcdir)/lib/quota/quotaio.h \
|
|
||||||
$(top_srcdir)/lib/quota/dqblk_v2.h $(top_srcdir)/lib/quota/quotaio_tree.h \
|
|
||||||
$(top_srcdir)/lib/../e2fsck/dict.h
|
|
||||||
+splash.o: $(srcdir)/splash.c $(srcdir)/splash.h
|
|
||||||
profile.o: $(srcdir)/profile.c $(top_builddir)/lib/config.h \
|
|
||||||
$(top_builddir)/lib/dirpaths.h $(top_srcdir)/lib/et/com_err.h \
|
|
||||||
$(srcdir)/profile.h prof_err.h
|
|
||||||
Index: e2fsck/splash.c
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ e2fsck/splash.c
|
|
||||||
@@ -0,0 +1,100 @@
|
|
||||||
+/*
|
|
||||||
+ * add support for switching the splash screen on boot
|
|
||||||
+ */
|
|
||||||
+#include <stdio.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+#include <sys/types.h>
|
|
||||||
+#include <sys/stat.h>
|
|
||||||
+#include <fcntl.h>
|
|
||||||
+#include <unistd.h>
|
|
||||||
+#include <errno.h>
|
|
||||||
+#include "splash.h"
|
|
||||||
+
|
|
||||||
+static int verbose = 0;
|
|
||||||
+
|
|
||||||
+/* nop implementation
|
|
||||||
+ */
|
|
||||||
+static void nop(void)
|
|
||||||
+{
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static struct splash_ops nop_ops = {
|
|
||||||
+ .splash_on = nop,
|
|
||||||
+ .splash_off = nop
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * bootsplash implementation
|
|
||||||
+ */
|
|
||||||
+#define BOOTSPLASH_CTL "/proc/splash"
|
|
||||||
+
|
|
||||||
+static int bootsplash_exists(void)
|
|
||||||
+{
|
|
||||||
+ struct stat sb;
|
|
||||||
+
|
|
||||||
+ if (stat(BOOTSPLASH_CTL, &sb) == -1)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ if (S_ISREG(sb.st_mode))
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* write msg to splash control */
|
|
||||||
+static void bootsplash_msg(const char *msg, size_t size)
|
|
||||||
+{
|
|
||||||
+ int fd;
|
|
||||||
+ size_t written;
|
|
||||||
+
|
|
||||||
+ fd = open(BOOTSPLASH_CTL, O_WRONLY);
|
|
||||||
+ if (fd == -1) {
|
|
||||||
+ if (verbose)
|
|
||||||
+ printf("cannot open %s\n", BOOTSPLASH_CTL);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ written = write(fd, msg, size);
|
|
||||||
+ if (written != size) {
|
|
||||||
+ if (verbose)
|
|
||||||
+ printf("size = %zd, written = %zd\n", size, written);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ close(fd);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void bootsplash_on(void)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ printf("setting bootsplash silent\n");
|
|
||||||
+ bootsplash_msg("silent\n", 7);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void bootsplash_off(void)
|
|
||||||
+{
|
|
||||||
+ if (verbose)
|
|
||||||
+ printf("setting bootsplash verbose\n");
|
|
||||||
+ bootsplash_msg("verbose\n", 8);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static struct splash_ops bootsplash_ops = {
|
|
||||||
+ .splash_on = bootsplash_on,
|
|
||||||
+ .splash_off = bootsplash_off
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Initialisation
|
|
||||||
+ */
|
|
||||||
+void splash_init(struct splash_ops **ops)
|
|
||||||
+{
|
|
||||||
+ if (bootsplash_exists())
|
|
||||||
+ *ops = &bootsplash_ops;
|
|
||||||
+ else
|
|
||||||
+ *ops = &nop_ops;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void splash_set_verbose(void)
|
|
||||||
+{
|
|
||||||
+ verbose = 1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
Index: e2fsck/splash.h
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ e2fsck/splash.h
|
|
||||||
@@ -0,0 +1,13 @@
|
|
||||||
+#ifndef _SPLASH_H
|
|
||||||
+#define _SPLASH_H
|
|
||||||
+
|
|
||||||
+struct splash_ops {
|
|
||||||
+ void (*splash_on)(void);
|
|
||||||
+ void (*splash_off)(void);
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+void splash_init(struct splash_ops **ops);
|
|
||||||
+void splash_set_verbose(void);
|
|
||||||
+
|
|
||||||
+#endif /* _SPLASH_H */
|
|
||||||
+
|
|
||||||
Index: e2fsck/unix.c
|
|
||||||
===================================================================
|
|
||||||
--- e2fsck/unix.c.orig
|
|
||||||
+++ e2fsck/unix.c
|
|
||||||
@@ -51,6 +51,7 @@ extern int optind;
|
|
||||||
#include "e2p/e2p.h"
|
|
||||||
#include "e2fsck.h"
|
|
||||||
#include "problem.h"
|
|
||||||
+#include "splash.h"
|
|
||||||
#include "../version.h"
|
|
||||||
|
|
||||||
/* Command line options */
|
|
||||||
@@ -1177,6 +1178,7 @@ int main (int argc, char *argv[])
|
|
||||||
e2fsck_t ctx;
|
|
||||||
blk64_t orig_superblock;
|
|
||||||
struct problem_context pctx;
|
|
||||||
+ struct splash_ops *sops;
|
|
||||||
int flags, run_result;
|
|
||||||
int journal_size;
|
|
||||||
int sysval, sys_page_size = 4096;
|
|
||||||
@@ -1215,6 +1217,7 @@ int main (int argc, char *argv[])
|
|
||||||
exit(FSCK_ERROR);
|
|
||||||
}
|
|
||||||
reserve_stdio_fds();
|
|
||||||
+ splash_init(&sops);
|
|
||||||
|
|
||||||
set_up_logging(ctx);
|
|
||||||
if (ctx->logf) {
|
|
||||||
@@ -1590,6 +1593,7 @@ print_unsupp_features:
|
|
||||||
fatal_error(ctx, 0);
|
|
||||||
check_if_skip(ctx);
|
|
||||||
check_resize_inode(ctx);
|
|
||||||
+ sops->splash_off();
|
|
||||||
if (bad_blocks_file)
|
|
||||||
read_bad_blocks_file(ctx, bad_blocks_file, replace_bad_blocks);
|
|
||||||
else if (cflag)
|
|
@ -1,10 +1,10 @@
|
|||||||
Index: lib/ext2fs/ext2fs.h
|
Index: lib/ext2fs/ext2fs.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- lib/ext2fs/ext2fs.h.orig 2012-06-04 18:42:23.000000000 +0200
|
--- lib/ext2fs/ext2fs.h.orig
|
||||||
+++ lib/ext2fs/ext2fs.h 2012-06-14 09:53:19.190709779 +0200
|
+++ lib/ext2fs/ext2fs.h
|
||||||
@@ -53,6 +53,7 @@ extern "C" {
|
@@ -62,6 +62,7 @@ extern "C" {
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <time.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
+#include <unistd.h>
|
+#include <unistd.h>
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:4bd8a770b6925c3f4ec5dce82c55774e4566cd6f3ffb5805177e3c92c8910b76
|
|
||||||
size 6353078
|
|
3
e2fsprogs-1.43.8.tar.gz
Normal file
3
e2fsprogs-1.43.8.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:6f831e372afeabc188d3e87dba9d8ff48f9f24cf3c5e354dcfa525ae9381dc27
|
||||||
|
size 7474876
|
@ -1,56 +1,211 @@
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jun 7 13:06:21 UTC 2017 - jack@suse.cz
|
Fri Jun 1 16:31:22 UTC 2018 - jack@suse.cz
|
||||||
|
|
||||||
- libext2fs-don-t-ignore-fsync-errors.patch: libext2fs: don't ignore fsync
|
|
||||||
errors (bsc#1038194)
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Wed May 31 13:34:50 UTC 2017 - jack@suse.cz
|
|
||||||
|
|
||||||
- libext2fs-Fix-fsync-2-detection.patch: libext2fs: Fix fsync(2) detection
|
- libext2fs-Fix-fsync-2-detection.patch: libext2fs: Fix fsync(2) detection
|
||||||
(bsc#1038194)
|
(bsc#1038194)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Nov 24 15:41:57 UTC 2016 - jack@suse.cz
|
Fri Jun 1 15:57:14 UTC 2018 - jack@suse.cz
|
||||||
|
|
||||||
- resize2fs-Fix-32-64-bit-overflow-when-multiplying-by-blocks-cl.patch: Fix
|
- Add references from old package:
|
||||||
32/64-bit overflow when multiplying by blocks/clusters per group
|
Fix resize2fs-Fix-32-64-bit-overflow-when-multiplying-by-blocks-cl.patch
|
||||||
(bsc#1009532)
|
in 1.42.12 (bsc#1009532)
|
||||||
|
Fix libext2fs-fix-potential-buffer-overflow-in-closefs.patch
|
||||||
|
in 1.42.13 (bsc#918346 CVE-2015-1572)
|
||||||
|
Fix libext2fs-avoid-buffer-overflow-if-s_first_meta_bg-i.patch
|
||||||
|
in 1.42.12 (bsc#915402 CVE-2015-0247)
|
||||||
|
Got specfile fix through Factory (bsc#960273)
|
||||||
|
Fix libext2fs-don-t-ignore-fsync-errors.patch in 1.43.4 (bsc#1038194)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Aug 11 09:13:57 UTC 2016 - jack@suse.cz
|
Wed Jan 24 14:41:11 UTC 2018 - jack@suse.cz
|
||||||
|
|
||||||
- Update spec file to regenerate initrd when e2fsprogs is updated or
|
- libext2fs-fix-build-failure-in-swapfs.c-on-big-endia.patch:
|
||||||
uninstalled (bsc#960273)
|
libext2fs: fix build failure in swapfs.c on big-endian systems (bsc#1077420)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue May 26 11:42:47 UTC 2015 - jack@suse.cz
|
Tue Jan 9 10:16:04 UTC 2018 - jack@suse.cz
|
||||||
|
|
||||||
- libext2fs-fix-potential-buffer-overflow-in-closefs.patch: libext2fs: fix
|
- Update to 1.43.8
|
||||||
potential buffer overflow in closefs() (bsc#918346 CVE-2015-1572)
|
* add forgotten byteswap of some new superblock fields
|
||||||
|
* fix use-after-free in e2fsck for corrupted root inode
|
||||||
|
* fix floating point exception due to corrupted superblock in e2fsck
|
||||||
|
* fix resize2fs's free block sanity checks
|
||||||
|
* updated translations
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue May 26 11:30:53 UTC 2015 - jack@suse.cz
|
Tue Nov 14 09:49:57 UTC 2017 - jack@suse.cz
|
||||||
|
|
||||||
- libext2fs-avoid-buffer-overflow-if-s_first_meta_bg-i.patch: libext2fs:
|
- Added %license tag to specfile
|
||||||
avoid buffer overflow if s_first_meta_bg is too big (bsc#915402 CVE-2015-0247)
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Jan 9 09:05:27 UTC 2015 - jack@suse.cz
|
Tue Nov 7 09:23:56 UTC 2017 - jack@suse.cz
|
||||||
|
|
||||||
- e2fsck-fix-free-pointer-dereferences.patch:
|
- Update to 1.43.7
|
||||||
e2fsck-free-ctx-fs-not-fs-at-the-end-of-fsck.patch:
|
* debugfs, tune2fs, fuse2fs fixes of error handling in journal replay
|
||||||
Fix use after free issues (bnc#912229)
|
* e2fsck and debugfs fixes so that malicious filesystems do not cause
|
||||||
|
buffer overflows
|
||||||
|
* fix corner cases in offline resizing in resize2fs
|
||||||
|
* updated translations
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jul 21 17:54:46 UTC 2014 - jack@suse.cz
|
Mon Sep 18 14:42:48 CEST 2017 - ro@suse.de
|
||||||
|
|
||||||
|
- ignore errors for install-info calls in post scripts,
|
||||||
|
otherwise installing with "--excludedocs" fails
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 5 15:33:16 UTC 2017 - jack@suse.cz
|
||||||
|
|
||||||
|
- Update to 1.43.6
|
||||||
|
* fix printing of quota inconsistency messages
|
||||||
|
* fix out of bounds checks in e2fsck
|
||||||
|
* optimize e2fsck CPU usage for large sparse files
|
||||||
|
* increase inode size to 256 bytes if features require it
|
||||||
|
* various UI fixes
|
||||||
|
* updated translations
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 28 13:42:33 UTC 2017 - mmarek@suse.com
|
||||||
|
|
||||||
|
- Add missing coreutils dependency for initrd macros (bsc#1055492).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Aug 21 13:14:25 UTC 2017 - jack@suse.cz
|
||||||
|
|
||||||
|
- Update to 1.43.5
|
||||||
|
* fix e2fsck infinite loop when rebuilding encrypted directories
|
||||||
|
* fix tune2fs support for enabling /disabling project quota
|
||||||
|
* fixes in debugfs, dumpe2fs, e2fsck, tune2fs, and resize2fs for maliciously
|
||||||
|
corrupted filesystems
|
||||||
|
* fix e2fsck to verify invalid quota inode numbers
|
||||||
|
* fix byte-swapping of backup superblocks
|
||||||
|
* fix e2fsck -E bmap2extent to work for sparse files
|
||||||
|
* fix e2fsck to correctly handle quota accounting for multiply claimed blocks
|
||||||
|
* lots of other fixes
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Mar 3 09:47:06 UTC 2017 - jack@suse.cz
|
||||||
|
|
||||||
|
- Update to 1.43.4
|
||||||
|
* fix e2fsck handling of system.data extended attributes for small files
|
||||||
|
* fixes in mke2fs -d
|
||||||
|
* make mke2fs refuse absurdly large devices
|
||||||
|
* make mke2fs properly report IO errors
|
||||||
|
* clarify default in mke2fs questions
|
||||||
|
* re-add uninit_bg to mke2fs.conf
|
||||||
|
* add support for project quota to debugfs
|
||||||
|
* improve xattr support in debugfs
|
||||||
|
* remove mkfs.ext4dev and fsck.ext4dev
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 3 12:02:04 UTC 2016 - jack@suse.cz
|
||||||
|
|
||||||
|
- Remove suse-module-tools dependency as it creates cycle in dependency list
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 27 12:41:57 UTC 2016 - jack@suse.cz
|
||||||
|
|
||||||
|
- Update download URL to poing to ftp.kernel.org which is more reliable
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 26 12:56:47 UTC 2016 - jack@suse.cz
|
||||||
|
|
||||||
|
- Update to 1.43.3
|
||||||
|
* mke2fs will use larger journal for large filesystems by default
|
||||||
|
* e2fsck journal replay bugfixes
|
||||||
|
* debugfs improvements and fixes
|
||||||
|
* fix resize2fs migration of attribute blocks
|
||||||
|
- fuse2fs manpage is no longer installed when fuse2fs is not built
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 12 11:02:14 UTC 2016 - dmueller@suse.com
|
||||||
|
|
||||||
|
- fix last change
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jul 23 18:24:39 UTC 2016 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- Rebuild the initrd if this package changes (and we are not
|
||||||
|
building the -mini version)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 20 14:58:12 UTC 2016 - jack@suse.cz
|
||||||
|
|
||||||
|
- Update to 1.43.1
|
||||||
|
* Add support for the ext4 metadata checksum, checksum seed, inline data,
|
||||||
|
encryption, project quota, and read-only features
|
||||||
|
* Support for the very old, experimental, and never-added-to-mainline
|
||||||
|
compression feature has been removed
|
||||||
|
* Mke2fs will now create file systems with the metadata_csum and 64bit
|
||||||
|
features enabled by default
|
||||||
|
* The tune2fs program will ask the user for confirmation before starting
|
||||||
|
dangerous operations if the terminal is available, and it will replay
|
||||||
|
the journal if necessary
|
||||||
|
* Add an ext2/3/4 FUSE server
|
||||||
|
* The resize2fs command can now convert file systems between 64-bit and
|
||||||
|
32-bit mode
|
||||||
|
* We now use a new e2undo file format which is much more efficient and
|
||||||
|
faster than the old tdb-based scheme. Since it so much faster, e2fsck,
|
||||||
|
tune2fs, debugfs, and resize2fs now also can support using creating an
|
||||||
|
undo file.
|
||||||
|
* Multiple e2fsck fixes
|
||||||
|
* Multiple mke2fs improvements
|
||||||
|
* Multiple debugfs improvements
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Aug 7 00:00:00 CEST 2015 - dsterba@suse.com
|
||||||
|
|
||||||
|
- spec: add static library dependencies
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jul 27 00:00:00 CEST 2015 - dsterba@suse.com
|
||||||
|
|
||||||
|
- enable static build and package static libraries
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jun 20 23:33:05 UTC 2015 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- e2fsprogs-1.41.1-splash_support.patch: Drop it, this patch
|
||||||
|
depends on the old in kernel "bootsplash" patches that were
|
||||||
|
removed after the introduction of plymouth.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 26 12:15:35 UTC 2015 - jack@suse.cz
|
||||||
|
|
||||||
|
- Update to 1.42.13
|
||||||
|
* fix potential buffer overflow while closing a filesystem
|
||||||
|
* fix deadlock which occurs when using systemd and e2fsck.conf's logging
|
||||||
|
feature
|
||||||
|
* make tune2fs clear journal superblock backup when removing journal
|
||||||
|
* fix use after free bugs in resize2fs and e2fsck
|
||||||
|
* fix endianity bugs in libext2fs
|
||||||
|
...
|
||||||
|
- Remove e2fsck-fix-free-pointer-dereferences.patch: Merged upstream
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 9 08:48:40 UTC 2015 - jack@suse.cz
|
||||||
|
|
||||||
|
- e2fsck-fix-free-pointer-dereferences.patch: Fix use after free (bnc#912229)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 2 13:39:35 UTC 2014 - jack@suse.cz
|
||||||
|
|
||||||
|
- Update to 1.42.12
|
||||||
|
* fix e2fsck bugs when repairing bigalloc filesystems
|
||||||
|
* fix rare e2fsck bugs discovered by fs fuzzing
|
||||||
|
* resize2fs will use less memory when resizing large filesystems
|
||||||
|
...
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 15 15:52:16 UTC 2014 - jack@suse.cz
|
||||||
|
|
||||||
- Remove e2fsck.conf since we don't need the changed default anymore. e2fsck
|
- Remove e2fsck.conf since we don't need the changed default anymore. e2fsck
|
||||||
handles this type of problems automatically now and broken_system_clock has
|
handles this type of problems automatically now and broken_system_clock has
|
||||||
other undesired sideeffects like skipped periodic checks (bnc#866283)
|
other undesired sideeffects like skipped periodic checks (bnc#866283)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jul 21 17:53:39 UTC 2014 - jack@suse.cz
|
Tue Jul 15 15:43:06 UTC 2014 - jack@suse.cz
|
||||||
|
|
||||||
- Update to 1.42.11
|
- Update to 1.42.11
|
||||||
* fix aborted journal replay in e2fsck with bigalloc
|
* fix aborted journal replay in e2fsck with bigalloc
|
||||||
@ -60,19 +215,24 @@ Mon Jul 21 17:53:39 UTC 2014 - jack@suse.cz
|
|||||||
* mke2fs asks before wiping preexisting filesystem
|
* mke2fs asks before wiping preexisting filesystem
|
||||||
* mke2fs can create filesystems with all metadata in the beginning
|
* mke2fs can create filesystems with all metadata in the beginning
|
||||||
* fix resize2fs shrink operation in some corner cases
|
* fix resize2fs shrink operation in some corner cases
|
||||||
* fix quota handling in e2fsck
|
|
||||||
...
|
...
|
||||||
- Remove filefrag-print-shared-extent-flag.patch: Merged upstream
|
- Remove filefrag-print-shared-extent-flag.patch: Merged upstream
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Apr 17 21:49:40 UTC 2014 - mfasheh@suse.com
|
Mon Apr 28 17:45:46 UTC 2014 - mfasheh@suse.com
|
||||||
|
|
||||||
- Add filefrag-print-shared-extent-flag.patch: let's filefrag print shared
|
- Add filefrag-print-shared-extent-flag.patch: lets filefrag print shared
|
||||||
extent flag when it gets it. Helps with fate#316317 / bnc#868847. Patch
|
extent flag when it gets it. Helps with fate#316317 / bnc#868847. Patch
|
||||||
sent to upstream 4/17/2014.
|
sent to upstream 4/17/2014.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Feb 4 00:08:18 UTC 2014 - jack@suse.cz
|
Mon Jan 27 13:05:33 UTC 2014 - jack@suse.cz
|
||||||
|
|
||||||
|
- Removed "-mini" spec file for now as it is causing troubles in Factory
|
||||||
|
and according to Coolo may not be needed after all.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jan 27 09:22:23 UTC 2014 - jack@suse.cz
|
||||||
|
|
||||||
- update to 1.42.9
|
- update to 1.42.9
|
||||||
* fixes in resize2fs, e2fsck, debugfs, and libext2fs to correctly handle
|
* fixes in resize2fs, e2fsck, debugfs, and libext2fs to correctly handle
|
||||||
@ -88,6 +248,15 @@ Tue Feb 4 00:08:18 UTC 2014 - jack@suse.cz
|
|||||||
* fix e2fsck crashes when deleting invalid symlink, directory larger than 2GB
|
* fix e2fsck crashes when deleting invalid symlink, directory larger than 2GB
|
||||||
...
|
...
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Dec 10 00:45:47 UTC 2013 - nfbrown@suse.com
|
||||||
|
|
||||||
|
- Created "-mini" version of package which doesn't
|
||||||
|
build "info" and so doesn't depend on makeinfo,
|
||||||
|
texinfo, and all of tex. This should allow packages
|
||||||
|
in the bootstrap cycle (such as krb5-mini) to
|
||||||
|
build-depends of libraries from here.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Jun 27 10:54:12 UTC 2013 - jack@suse.cz
|
Thu Jun 27 10:54:12 UTC 2013 - jack@suse.cz
|
||||||
|
|
||||||
|
193
e2fsprogs.spec
193
e2fsprogs.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package e2fsprogs
|
# spec file for package e2fsprogs
|
||||||
#
|
#
|
||||||
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -16,6 +16,8 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define build_mini 0
|
||||||
|
|
||||||
Name: e2fsprogs
|
Name: e2fsprogs
|
||||||
%if 0%{?suse_version} >= 1010
|
%if 0%{?suse_version} >= 1010
|
||||||
# Hint for ZYPP
|
# Hint for ZYPP
|
||||||
@ -26,6 +28,7 @@ BuildRequires: automake
|
|||||||
BuildRequires: libblkid-devel
|
BuildRequires: libblkid-devel
|
||||||
BuildRequires: libuuid-devel
|
BuildRequires: libuuid-devel
|
||||||
BuildRequires: pkg-config
|
BuildRequires: pkg-config
|
||||||
|
%if ! %{build_mini}
|
||||||
%if 0%{?suse_version} > 1220
|
%if 0%{?suse_version} > 1220
|
||||||
BuildRequires: makeinfo
|
BuildRequires: makeinfo
|
||||||
%endif
|
%endif
|
||||||
@ -36,38 +39,49 @@ BuildRequires: makeinfo
|
|||||||
%define install_info_delete sbin/install-info --delete
|
%define install_info_delete sbin/install-info --delete
|
||||||
%endif
|
%endif
|
||||||
Requires: %install_info_prereq
|
Requires: %install_info_prereq
|
||||||
|
%endif
|
||||||
# bug437293
|
# bug437293
|
||||||
%ifarch ppc64
|
%ifarch ppc64
|
||||||
Obsoletes: e2fsprogs-64bit
|
Obsoletes: e2fsprogs-64bit
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
Conflicts: e2fsprogs
|
||||||
|
Conflicts: e2fsprogs-devel
|
||||||
|
Conflicts: libext2fs2
|
||||||
|
Conflicts: libext2fs-devel
|
||||||
|
Conflicts: libcom_err2
|
||||||
|
Conflicts: libcom_err-devel
|
||||||
|
%else
|
||||||
|
Conflicts: e2fsprogs-mini
|
||||||
|
Conflicts: e2fsprogs-mini-devel
|
||||||
|
Conflicts: libext2fs2-mini
|
||||||
|
Conflicts: libext2fs-mini-devel
|
||||||
|
Conflicts: libcom_err2-mini
|
||||||
|
Conflicts: libcom_err-mini-devel
|
||||||
|
%endif
|
||||||
#
|
#
|
||||||
Version: 1.42.11
|
Version: 1.43.8
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Utilities for the Second Extended File System
|
Summary: Utilities for the Second Extended File System
|
||||||
License: GPL-2.0
|
License: GPL-2.0
|
||||||
Group: System/Filesystems
|
Group: System/Filesystems
|
||||||
Url: http://e2fsprogs.sourceforge.net
|
Url: http://e2fsprogs.sourceforge.net
|
||||||
|
Requires(post): coreutils
|
||||||
Requires: libcom_err2 >= %{version}
|
Requires: libcom_err2 >= %{version}
|
||||||
Requires: libext2fs2 >= %{version}
|
Requires: libext2fs2 >= %{version}
|
||||||
Source: http://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v%{version}/e2fsprogs-%{version}.tar.gz
|
Source: http://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v%{version}/e2fsprogs-%{version}.tar.gz
|
||||||
Source2: README.SUSE
|
Source2: README.SUSE
|
||||||
Source3: baselibs.conf
|
Source3: baselibs.conf
|
||||||
#
|
#
|
||||||
# e2fsprogs patches
|
# e2fsprogs patches
|
||||||
#
|
#
|
||||||
Patch1: e2fsprogs-1.41.1-splash_support.patch
|
Patch1: libext2fs-fix-build-failure-in-swapfs.c-on-big-endia.patch
|
||||||
# libcom_err patches
|
# libcom_err patches
|
||||||
Patch3: libcom_err-compile_et_permissions.patch
|
Patch3: libcom_err-compile_et_permissions.patch
|
||||||
Patch4: e2fsprogs-1.42-implicit_fortify_decl.patch
|
Patch4: e2fsprogs-1.42-implicit_fortify_decl.patch
|
||||||
Patch5: e2fsprogs-1.42-ext2fsh_implicit.patch
|
Patch5: e2fsprogs-1.42-ext2fsh_implicit.patch
|
||||||
Patch6: e2fsck-free-ctx-fs-not-fs-at-the-end-of-fsck.patch
|
Patch6: libext2fs-Fix-fsync-2-detection.patch
|
||||||
Patch7: e2fsck-fix-free-pointer-dereferences.patch
|
|
||||||
Patch8: libext2fs-avoid-buffer-overflow-if-s_first_meta_bg-i.patch
|
|
||||||
Patch9: libext2fs-fix-potential-buffer-overflow-in-closefs.patch
|
|
||||||
Patch10: resize2fs-Fix-32-64-bit-overflow-when-multiplying-by-blocks-cl.patch
|
|
||||||
Patch11: libext2fs-don-t-ignore-fsync-errors.patch
|
|
||||||
Patch12: libext2fs-Fix-fsync-2-detection.patch
|
|
||||||
|
|
||||||
# Do not suppress make commands
|
# Do not suppress make commands
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
@ -92,25 +106,58 @@ Requires: libuuid-devel
|
|||||||
%description devel
|
%description devel
|
||||||
Dummy development package for backwards compatibility.
|
Dummy development package for backwards compatibility.
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%package -n libext2fs2-mini
|
||||||
|
%else
|
||||||
%package -n libext2fs2
|
%package -n libext2fs2
|
||||||
|
%endif
|
||||||
Summary: Ext2fs library
|
Summary: Ext2fs library
|
||||||
License: LGPL-2.0
|
License: LGPL-2.0
|
||||||
Group: System/Filesystems
|
Group: System/Filesystems
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%description -n libext2fs2-mini
|
||||||
|
%else
|
||||||
%description -n libext2fs2
|
%description -n libext2fs2
|
||||||
|
%endif
|
||||||
The basic Ext2fs shared library.
|
The basic Ext2fs shared library.
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%package -n libext2fs-mini-devel
|
||||||
|
%else
|
||||||
%package -n libext2fs-devel
|
%package -n libext2fs-devel
|
||||||
|
%endif
|
||||||
Summary: Development files for libext2fs
|
Summary: Development files for libext2fs
|
||||||
License: LGPL-2.0
|
License: LGPL-2.0
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: libcom_err-devel
|
Requires: libcom_err-devel
|
||||||
Requires: libext2fs2 = %version
|
Requires: libext2fs2 = %version
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%description -n libext2fs-mini-devel
|
||||||
|
%else
|
||||||
%description -n libext2fs-devel
|
%description -n libext2fs-devel
|
||||||
|
%endif
|
||||||
Development files for libext2fs.
|
Development files for libext2fs.
|
||||||
|
|
||||||
|
%if ! %{build_mini}
|
||||||
|
%package -n libext2fs-devel-static
|
||||||
|
Summary: Development files for libext2fs
|
||||||
|
License: LGPL-2.0
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
Requires: libext2fs-devel = %{version}
|
||||||
|
Provides: libext2fs-devel:%{_libdir}/libe2p.a
|
||||||
|
Provides: libext2fs-devel:%{_libdir}/libext2fs.a
|
||||||
|
|
||||||
|
%description -n libext2fs-devel-static
|
||||||
|
Development files for libext2fs. Static libraries.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%package -n libcom_err2-mini
|
||||||
|
%else
|
||||||
%package -n libcom_err2
|
%package -n libcom_err2
|
||||||
|
%endif
|
||||||
Summary: E2fsprogs error reporting library
|
Summary: E2fsprogs error reporting library
|
||||||
# bug437293
|
# bug437293
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -123,10 +170,18 @@ Obsoletes: libcom_err2-64bit
|
|||||||
Provides: libcom_err = %{version}
|
Provides: libcom_err = %{version}
|
||||||
Obsoletes: libcom_err <= 1.40
|
Obsoletes: libcom_err <= 1.40
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%description -n libcom_err2-mini
|
||||||
|
%else
|
||||||
%description -n libcom_err2
|
%description -n libcom_err2
|
||||||
|
%endif
|
||||||
com_err is an error message display library.
|
com_err is an error message display library.
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%package -n libcom_err-mini-devel
|
||||||
|
%else
|
||||||
%package -n libcom_err-devel
|
%package -n libcom_err-devel
|
||||||
|
%endif
|
||||||
Summary: Development files for libcom_err
|
Summary: Development files for libcom_err
|
||||||
# bug437293
|
# bug437293
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -138,24 +193,40 @@ Obsoletes: libcom_err-devel-64bit
|
|||||||
Requires: glibc-devel
|
Requires: glibc-devel
|
||||||
Requires: libcom_err2 = %version
|
Requires: libcom_err2 = %version
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%description -n libcom_err-mini-devel
|
||||||
|
%else
|
||||||
%description -n libcom_err-devel
|
%description -n libcom_err-devel
|
||||||
|
%endif
|
||||||
Development files for the com_err error message display library.
|
Development files for the com_err error message display library.
|
||||||
|
|
||||||
|
%if ! %{build_mini}
|
||||||
|
%package -n libcom_err-devel-static
|
||||||
|
Summary: Development files for libcom_err, static libraries
|
||||||
|
License: MIT
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
Requires: libcom_err-devel = %{version}
|
||||||
|
Provides: libcom_err-devel:%{_libdir}/libcom_err.a
|
||||||
|
Provides: libcom_err-devel:%{_libdir}/libss.a
|
||||||
|
# bug437293
|
||||||
|
%ifarch ppc64
|
||||||
|
Obsoletes: libcom_err-devel-64bit
|
||||||
|
%endif
|
||||||
|
#
|
||||||
|
|
||||||
|
%description -n libcom_err-devel-static
|
||||||
|
Development files for the com_err error message display library. Static libraries.
|
||||||
|
%endif
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n e2fsprogs-%{version}
|
%setup -q -n e2fsprogs-%{version}
|
||||||
# e2fsprogs patches
|
# e2fsprogs patches
|
||||||
%patch1
|
%patch1 -p1
|
||||||
# libcom_err patches
|
# libcom_err patches
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4
|
%patch4
|
||||||
%patch5
|
%patch5
|
||||||
%patch6 -p1
|
%patch6 -p1
|
||||||
%patch7 -p1
|
|
||||||
%patch8 -p1
|
|
||||||
%patch9 -p1
|
|
||||||
%patch10 -p1
|
|
||||||
%patch11 -p1
|
|
||||||
%patch12 -p1
|
|
||||||
cp %{SOURCE2} .
|
cp %{SOURCE2} .
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -168,7 +239,11 @@ autoreconf --force --install
|
|||||||
--disable-libuuid \
|
--disable-libuuid \
|
||||||
--disable-uuidd \
|
--disable-uuidd \
|
||||||
--disable-fsck \
|
--disable-fsck \
|
||||||
|
--enable-static \
|
||||||
CFLAGS="$RPM_OPT_FLAGS"
|
CFLAGS="$RPM_OPT_FLAGS"
|
||||||
|
%if %{build_mini}
|
||||||
|
rm -rf doc
|
||||||
|
%endif
|
||||||
make %{?_smp_mflags} V=1
|
make %{?_smp_mflags} V=1
|
||||||
#Guarantee that tranlations match the source messages
|
#Guarantee that tranlations match the source messages
|
||||||
make -C po update-po
|
make -C po update-po
|
||||||
@ -176,20 +251,10 @@ make -C po update-po
|
|||||||
%install
|
%install
|
||||||
make install install-libs DESTDIR=$RPM_BUILD_ROOT ELF_INSTALL_DIR=/%{_libdir}
|
make install install-libs DESTDIR=$RPM_BUILD_ROOT ELF_INSTALL_DIR=/%{_libdir}
|
||||||
|
|
||||||
%{find_lang} %{name}
|
%{find_lang} e2fsprogs
|
||||||
|
|
||||||
rm $RPM_BUILD_ROOT%{_libdir}/e2initrd_helper
|
rm $RPM_BUILD_ROOT%{_libdir}/e2initrd_helper
|
||||||
rm -f $RPM_BUILD_ROOT/%{_sbindir}/mkfs.ext4dev
|
|
||||||
rm -f $RPM_BUILD_ROOT/%{_sbindir}/fsck.ext4dev
|
|
||||||
rm -f $RPM_BUILD_ROOT/usr/share/man/man8/mkfs.ext4dev.8*
|
|
||||||
rm -f $RPM_BUILD_ROOT/usr/share/man/man8/fsck.ext4dev.8*
|
|
||||||
|
|
||||||
# Need libext2fs.a for silo
|
|
||||||
find "%buildroot/%_libdir" -type f -name "*.a" \
|
|
||||||
%ifarch %sparc
|
|
||||||
! -name libext2fs.a \
|
|
||||||
%endif
|
|
||||||
-print -delete
|
|
||||||
#UsrMerge
|
#UsrMerge
|
||||||
mkdir %{buildroot}/sbin
|
mkdir %{buildroot}/sbin
|
||||||
ln -s %{_sbindir}/badblocks %{buildroot}/sbin/badblocks
|
ln -s %{_sbindir}/badblocks %{buildroot}/sbin/badblocks
|
||||||
@ -219,25 +284,53 @@ done
|
|||||||
#EndUsrMerge
|
#EndUsrMerge
|
||||||
%post
|
%post
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
%install_info --info-dir=%{_infodir} %{_infodir}/libext2fs.info.gz
|
%if ! %{build_mini}
|
||||||
|
%install_info --info-dir=%{_infodir} %{_infodir}/libext2fs.info.gz || :
|
||||||
%{?regenerate_initrd_post}
|
%{?regenerate_initrd_post}
|
||||||
|
%endif
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
%install_info_delete --info-dir=%{_infodir} %{_infodir}/libext2fs.info.gz
|
%if ! %{build_mini}
|
||||||
|
%install_info_delete --info-dir=%{_infodir} %{_infodir}/libext2fs.info.gz || :
|
||||||
%{?regenerate_initrd_post}
|
%{?regenerate_initrd_post}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if ! %{build_mini}
|
||||||
|
%posttrans
|
||||||
|
%{?regenerate_initrd_posttrans}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%post -n libext2fs2-mini -p /sbin/ldconfig
|
||||||
|
%else
|
||||||
%post -n libext2fs2 -p /sbin/ldconfig
|
%post -n libext2fs2 -p /sbin/ldconfig
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%postun -n libext2fs2-mini -p /sbin/ldconfig
|
||||||
|
%else
|
||||||
%postun -n libext2fs2 -p /sbin/ldconfig
|
%postun -n libext2fs2 -p /sbin/ldconfig
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%post -n libcom_err2-mini -p /sbin/ldconfig
|
||||||
|
%else
|
||||||
%post -n libcom_err2 -p /sbin/ldconfig
|
%post -n libcom_err2 -p /sbin/ldconfig
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%postun -n libcom_err2-mini -p /sbin/ldconfig
|
||||||
|
%else
|
||||||
%postun -n libcom_err2 -p /sbin/ldconfig
|
%postun -n libcom_err2 -p /sbin/ldconfig
|
||||||
|
%endif
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f e2fsprogs.lang
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
%doc RELEASE-NOTES README
|
%doc RELEASE-NOTES README
|
||||||
|
%if 0%{?sle_version} > 120200
|
||||||
|
%license NOTICE
|
||||||
|
%endif
|
||||||
%config /etc/mke2fs.conf
|
%config /etc/mke2fs.conf
|
||||||
#UsrMerge
|
#UsrMerge
|
||||||
/sbin/badblocks
|
/sbin/badblocks
|
||||||
@ -281,7 +374,10 @@ done
|
|||||||
%{_sbindir}/filefrag
|
%{_sbindir}/filefrag
|
||||||
%{_sbindir}/e2freefrag
|
%{_sbindir}/e2freefrag
|
||||||
%{_sbindir}/e4defrag
|
%{_sbindir}/e4defrag
|
||||||
|
%{_sbindir}/e4crypt
|
||||||
|
%if ! %{build_mini}
|
||||||
%{_infodir}/libext2fs.info.gz
|
%{_infodir}/libext2fs.info.gz
|
||||||
|
%endif
|
||||||
%{_mandir}/man1/chattr.1.gz
|
%{_mandir}/man1/chattr.1.gz
|
||||||
%{_mandir}/man1/lsattr.1.gz
|
%{_mandir}/man1/lsattr.1.gz
|
||||||
%{_mandir}/man5/ext?.5.gz
|
%{_mandir}/man5/ext?.5.gz
|
||||||
@ -293,7 +389,11 @@ done
|
|||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%doc README.SUSE
|
%doc README.SUSE
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%files -n libext2fs2-mini
|
||||||
|
%else
|
||||||
%files -n libext2fs2
|
%files -n libext2fs2
|
||||||
|
%endif
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
#UsrMerge
|
#UsrMerge
|
||||||
/%{_lib}/libext2fs.so.*
|
/%{_lib}/libext2fs.so.*
|
||||||
@ -302,19 +402,24 @@ done
|
|||||||
%{_libdir}/libext2fs.so.*
|
%{_libdir}/libext2fs.so.*
|
||||||
%{_libdir}/libe2p.so.*
|
%{_libdir}/libe2p.so.*
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%files -n libext2fs-mini-devel
|
||||||
|
%else
|
||||||
%files -n libext2fs-devel
|
%files -n libext2fs-devel
|
||||||
|
%endif
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
%{_libdir}/libext2fs.so
|
%{_libdir}/libext2fs.so
|
||||||
%ifarch %sparc
|
|
||||||
%{_libdir}/libext2fs.a
|
|
||||||
%endif
|
|
||||||
%{_libdir}/libe2p.so
|
%{_libdir}/libe2p.so
|
||||||
/usr/include/ext2fs
|
/usr/include/ext2fs
|
||||||
/usr/include/e2p
|
/usr/include/e2p
|
||||||
%_libdir/pkgconfig/e2p.pc
|
%_libdir/pkgconfig/e2p.pc
|
||||||
%_libdir/pkgconfig/ext2fs.pc
|
%_libdir/pkgconfig/ext2fs.pc
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%files -n libcom_err2-mini
|
||||||
|
%else
|
||||||
%files -n libcom_err2
|
%files -n libcom_err2
|
||||||
|
%endif
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
#UsrMerge
|
#UsrMerge
|
||||||
/%{_lib}/libcom_err.so.*
|
/%{_lib}/libcom_err.so.*
|
||||||
@ -323,7 +428,11 @@ done
|
|||||||
%{_libdir}/libcom_err.so.*
|
%{_libdir}/libcom_err.so.*
|
||||||
%{_libdir}/libss.so.*
|
%{_libdir}/libss.so.*
|
||||||
|
|
||||||
|
%if %{build_mini}
|
||||||
|
%files -n libcom_err-mini-devel
|
||||||
|
%else
|
||||||
%files -n libcom_err-devel
|
%files -n libcom_err-devel
|
||||||
|
%endif
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
%_bindir/compile_et
|
%_bindir/compile_et
|
||||||
%_bindir/mk_cmds
|
%_bindir/mk_cmds
|
||||||
@ -340,4 +449,16 @@ done
|
|||||||
%{_mandir}/man1/mk_cmds.1.gz
|
%{_mandir}/man1/mk_cmds.1.gz
|
||||||
%{_mandir}/man3/com_err.3.gz
|
%{_mandir}/man3/com_err.3.gz
|
||||||
|
|
||||||
|
%if ! %{build_mini}
|
||||||
|
%files -n libcom_err-devel-static
|
||||||
|
%defattr(-, root, root)
|
||||||
|
%{_libdir}/libcom_err.a
|
||||||
|
%{_libdir}/libss.a
|
||||||
|
|
||||||
|
%files -n libext2fs-devel-static
|
||||||
|
%defattr(-, root, root)
|
||||||
|
%{_libdir}/libext2fs.a
|
||||||
|
%{_libdir}/libe2p.a
|
||||||
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
Index: e2fsprogs-1.41.7/lib/et/compile_et.sh.in
|
Index: e2fsprogs-1.42.13/lib/et/compile_et.sh.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- e2fsprogs-1.41.7.orig/lib/et/compile_et.sh.in
|
--- e2fsprogs-1.42.13.orig/lib/et/compile_et.sh.in
|
||||||
+++ e2fsprogs-1.41.7/lib/et/compile_et.sh.in
|
+++ e2fsprogs-1.42.13/lib/et/compile_et.sh.in
|
||||||
@@ -51,7 +51,7 @@ if test -f ${BASE}.h && cmp -s ${BASE}.h
|
@@ -51,7 +51,7 @@ if test -f ${BASE}.h && cmp -s ${BASE}.h
|
||||||
rm -f ${BASE}.h.$$
|
rm -f ${BASE}.h.$$
|
||||||
else
|
else
|
||||||
mv -f ${BASE}.h.$$ ${BASE}.h
|
mv -f ${BASE}.h.$$ ${BASE}.h
|
||||||
- chmod -w ${BASE}.h
|
- chmod a-w ${BASE}.h
|
||||||
+# chmod -w ${BASE}.h
|
+# chmod a-w ${BASE}.h
|
||||||
fi
|
fi
|
||||||
$AWK -f "${DIR}/et_c.awk" "outfile=${BASE}.c.$$" "outfn=${BASE}.c" "$ROOT.et"
|
$AWK -f "${DIR}/et_c.awk" "outfile=${BASE}.c.$$" "outfn=${BASE}.c" "$ROOT.et"
|
||||||
if test -f ${BASE}.c && cmp -s ${BASE}.c.$$ ${BASE}.c ; then
|
if test -f ${BASE}.c && cmp -s ${BASE}.c.$$ ${BASE}.c ; then
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
From f66e6ce4446738c2c7f43d41988a3eb73347e2f5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
Date: Sat, 9 Aug 2014 12:24:54 -0400
|
|
||||||
Subject: [PATCH] libext2fs: avoid buffer overflow if s_first_meta_bg is too
|
|
||||||
big
|
|
||||||
References: bsc#915402 CVE-2015-0247
|
|
||||||
|
|
||||||
If s_first_meta_bg is greater than the of number block group
|
|
||||||
descriptor blocks, then reading or writing the block group descriptors
|
|
||||||
will end up overruning the memory buffer allocated for the
|
|
||||||
descriptors. Fix this by limiting first_meta_bg to no more than
|
|
||||||
fs->desc_blocks. This doesn't correct the bad s_first_meta_bg value,
|
|
||||||
but it avoids causing the e2fsprogs userspace programs from
|
|
||||||
potentially crashing.
|
|
||||||
|
|
||||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
Acked-by: Jan Kara <jack@suse.cz>
|
|
||||||
---
|
|
||||||
lib/ext2fs/closefs.c | 6 ++++--
|
|
||||||
lib/ext2fs/openfs.c | 6 ++++--
|
|
||||||
2 files changed, 8 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
Index: e2fsprogs-1.42.11/lib/ext2fs/closefs.c
|
|
||||||
===================================================================
|
|
||||||
--- e2fsprogs-1.42.11.orig/lib/ext2fs/closefs.c
|
|
||||||
+++ e2fsprogs-1.42.11/lib/ext2fs/closefs.c
|
|
||||||
@@ -344,9 +344,11 @@ errcode_t ext2fs_flush2(ext2_filsys fs,
|
|
||||||
* superblocks and group descriptors.
|
|
||||||
*/
|
|
||||||
group_ptr = (char *) group_shadow;
|
|
||||||
- if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
|
|
||||||
+ if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) {
|
|
||||||
old_desc_blocks = fs->super->s_first_meta_bg;
|
|
||||||
- else
|
|
||||||
+ if (old_desc_blocks > fs->super->s_first_meta_bg)
|
|
||||||
+ old_desc_blocks = fs->desc_blocks;
|
|
||||||
+ } else
|
|
||||||
old_desc_blocks = fs->desc_blocks;
|
|
||||||
|
|
||||||
ext2fs_numeric_progress_init(fs, &progress, NULL,
|
|
||||||
Index: e2fsprogs-1.42.11/lib/ext2fs/openfs.c
|
|
||||||
===================================================================
|
|
||||||
--- e2fsprogs-1.42.11.orig/lib/ext2fs/openfs.c
|
|
||||||
+++ e2fsprogs-1.42.11/lib/ext2fs/openfs.c
|
|
||||||
@@ -378,9 +378,11 @@ errcode_t ext2fs_open2(const char *name,
|
|
||||||
#ifdef WORDS_BIGENDIAN
|
|
||||||
groups_per_block = EXT2_DESC_PER_BLOCK(fs->super);
|
|
||||||
#endif
|
|
||||||
- if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
|
|
||||||
+ if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) {
|
|
||||||
first_meta_bg = fs->super->s_first_meta_bg;
|
|
||||||
- else
|
|
||||||
+ if (first_meta_bg > fs->desc_blocks)
|
|
||||||
+ first_meta_bg = fs->desc_blocks;
|
|
||||||
+ } else
|
|
||||||
first_meta_bg = fs->desc_blocks;
|
|
||||||
if (first_meta_bg) {
|
|
||||||
retval = io_channel_read_blk(fs->io, group_block +
|
|
@ -1,86 +0,0 @@
|
|||||||
From: Eric Sandeen <sandeen@redhat.com>
|
|
||||||
Date: Tue, 20 Dec 2016 09:23:29 -0600
|
|
||||||
Subject: [PATCH] libext2fs: don't ignore fsync errors
|
|
||||||
Git-commit: 025d31b17a67953ce96741588bd911e6e66b6e03
|
|
||||||
References: bsc#1038194
|
|
||||||
|
|
||||||
Today, if mke2fs experiences IO errors (say, on a thin device
|
|
||||||
which filled up during mkfs), mke2fs is silent and returns
|
|
||||||
success even though the filesystem was not properly created.
|
|
||||||
|
|
||||||
Catch errors from the io_channel_flush() callchain to
|
|
||||||
fix this up. Fix formatting of the printed error as
|
|
||||||
well:
|
|
||||||
|
|
||||||
...
|
|
||||||
Creating journal (262144 blocks): done
|
|
||||||
Writing superblocks and filesystem accounting information:
|
|
||||||
Warning, had trouble writing out superblocks.
|
|
||||||
# echo $?
|
|
||||||
5
|
|
||||||
|
|
||||||
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
|
|
||||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
Acked-by: Jan Kara <jack@suse.cz>
|
|
||||||
---
|
|
||||||
lib/ext2fs/closefs.c | 10 ++++++++--
|
|
||||||
lib/ext2fs/unix_io.c | 3 ++-
|
|
||||||
misc/mke2fs.c | 2 +-
|
|
||||||
3 files changed, 11 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
Index: e2fsprogs-1.42.11/lib/ext2fs/closefs.c
|
|
||||||
===================================================================
|
|
||||||
--- e2fsprogs-1.42.11.orig/lib/ext2fs/closefs.c
|
|
||||||
+++ e2fsprogs-1.42.11/lib/ext2fs/closefs.c
|
|
||||||
@@ -418,16 +418,22 @@ write_primary_superblock_only:
|
|
||||||
ext2fs_swap_super(super_shadow);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
- if (!(flags & EXT2_FLAG_FLUSH_NO_SYNC))
|
|
||||||
+ if (!(flags & EXT2_FLAG_FLUSH_NO_SYNC)) {
|
|
||||||
retval = io_channel_flush(fs->io);
|
|
||||||
+ if (retval)
|
|
||||||
+ goto errout;
|
|
||||||
+ }
|
|
||||||
retval = write_primary_superblock(fs, super_shadow);
|
|
||||||
if (retval)
|
|
||||||
goto errout;
|
|
||||||
|
|
||||||
fs->flags &= ~EXT2_FLAG_DIRTY;
|
|
||||||
|
|
||||||
- if (!(flags & EXT2_FLAG_FLUSH_NO_SYNC))
|
|
||||||
+ if (!(flags & EXT2_FLAG_FLUSH_NO_SYNC)) {
|
|
||||||
retval = io_channel_flush(fs->io);
|
|
||||||
+ if (retval)
|
|
||||||
+ goto errout;
|
|
||||||
+ }
|
|
||||||
errout:
|
|
||||||
fs->super->s_state = fs_state;
|
|
||||||
#ifdef WORDS_BIGENDIAN
|
|
||||||
Index: e2fsprogs-1.42.11/lib/ext2fs/unix_io.c
|
|
||||||
===================================================================
|
|
||||||
--- e2fsprogs-1.42.11.orig/lib/ext2fs/unix_io.c
|
|
||||||
+++ e2fsprogs-1.42.11/lib/ext2fs/unix_io.c
|
|
||||||
@@ -843,7 +843,8 @@ static errcode_t unix_flush(io_channel c
|
|
||||||
#ifndef NO_IO_CACHE
|
|
||||||
retval = flush_cached_blocks(channel, data, 0);
|
|
||||||
#endif
|
|
||||||
- fsync(data->dev);
|
|
||||||
+ if (!retval && fsync(data->dev) != 0)
|
|
||||||
+ return errno;
|
|
||||||
return retval;
|
|
||||||
}
|
|
||||||
|
|
||||||
Index: e2fsprogs-1.42.11/misc/mke2fs.c
|
|
||||||
===================================================================
|
|
||||||
--- e2fsprogs-1.42.11.orig/misc/mke2fs.c
|
|
||||||
+++ e2fsprogs-1.42.11/misc/mke2fs.c
|
|
||||||
@@ -2925,7 +2925,7 @@ no_journal:
|
|
||||||
retval = ext2fs_close_free(&fs);
|
|
||||||
if (retval) {
|
|
||||||
fprintf(stderr, "%s",
|
|
||||||
- _("\nWarning, had trouble writing out superblocks."));
|
|
||||||
+ _("\nWarning, had trouble writing out superblocks.\n"));
|
|
||||||
} else if (!quiet) {
|
|
||||||
printf("%s", _("done\n\n"));
|
|
||||||
if (!getenv("MKE2FS_SKIP_CHECK_MSG"))
|
|
40
libext2fs-fix-build-failure-in-swapfs.c-on-big-endia.patch
Normal file
40
libext2fs-fix-build-failure-in-swapfs.c-on-big-endia.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From 876d9b0c8eac2fd80dd62bfa1b09adea62aa08f3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Theodore Ts'o <tytso@mit.edu>
|
||||||
|
Date: Wed, 3 Jan 2018 01:32:02 -0500
|
||||||
|
Subject: [PATCH] libext2fs: fix build failure in swapfs.c on big-endian
|
||||||
|
systems
|
||||||
|
References: bsc#1077420
|
||||||
|
|
||||||
|
Addresses-Debian-Bug: #886119
|
||||||
|
|
||||||
|
Reported-by: James Clarke <jrtc27@debian.org>
|
||||||
|
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||||||
|
Acked-by: Jan Kara <jack@suse.cz>
|
||||||
|
---
|
||||||
|
lib/ext2fs/swapfs.c | 3 ++-
|
||||||
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/ext2fs/swapfs.c b/lib/ext2fs/swapfs.c
|
||||||
|
index 6e5cff97e505..b13dc4229225 100644
|
||||||
|
--- a/lib/ext2fs/swapfs.c
|
||||||
|
+++ b/lib/ext2fs/swapfs.c
|
||||||
|
@@ -19,6 +19,7 @@
|
||||||
|
|
||||||
|
#include "ext2_fs.h"
|
||||||
|
#include "ext2fs.h"
|
||||||
|
+#include "ext2fsP.h"
|
||||||
|
#include <ext2fs/ext2_ext_attr.h>
|
||||||
|
|
||||||
|
#ifdef WORDS_BIGENDIAN
|
||||||
|
@@ -358,7 +359,7 @@ void ext2fs_swap_inode_full(ext2_filsys fs, struct ext2_inode_large *t,
|
||||||
|
if (inode_includes(inode_size, i_projid))
|
||||||
|
t->i_projid = ext2fs_swab16(f->i_projid);
|
||||||
|
/* catch new static fields added after i_projid */
|
||||||
|
- EXT2FS_BUILD_BUG_ON(sizeof(ext2_inode_large) != 160);
|
||||||
|
+ EXT2FS_BUILD_BUG_ON(sizeof(struct ext2_inode_large) != 160);
|
||||||
|
|
||||||
|
i = sizeof(struct ext2_inode) + extra_isize + sizeof(__u32);
|
||||||
|
if (bufsize < (int) i)
|
||||||
|
--
|
||||||
|
2.13.6
|
||||||
|
|
@ -1,58 +0,0 @@
|
|||||||
From 49d0fe2a14f2a23da2fe299643379b8c1d37df73 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
Date: Fri, 6 Feb 2015 12:46:39 -0500
|
|
||||||
Subject: [PATCH] libext2fs: fix potential buffer overflow in closefs()
|
|
||||||
References: bsc#918346 CVE-2015-1572
|
|
||||||
|
|
||||||
The bug fix in f66e6ce4446: "libext2fs: avoid buffer overflow if
|
|
||||||
s_first_meta_bg is too big" had a typo in the fix for
|
|
||||||
ext2fs_closefs(). In practice most of the security exposure was from
|
|
||||||
the openfs path, since this meant if there was a carefully crafted
|
|
||||||
file system, buffer overrun would be triggered when the file system was
|
|
||||||
opened.
|
|
||||||
|
|
||||||
However, if corrupted file system didn't trip over some corruption
|
|
||||||
check, and then the file system was modified via tune2fs or debugfs,
|
|
||||||
such that the superblock was marked dirty and then written out via the
|
|
||||||
closefs() path, it's possible that the buffer overrun could be
|
|
||||||
triggered when the file system is closed.
|
|
||||||
|
|
||||||
Also clear up a signed vs unsigned warning while we're at it.
|
|
||||||
|
|
||||||
Thanks to Nick Kralevich <nnk@google.com> for asking me to look at
|
|
||||||
compiler warning in the code in question, which led me to notice the
|
|
||||||
bug in f66e6ce4446.
|
|
||||||
|
|
||||||
Addresses: CVE-2015-1572
|
|
||||||
|
|
||||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
Acked-by: Jan Kara <jack@suse.cz>
|
|
||||||
---
|
|
||||||
lib/ext2fs/closefs.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/ext2fs/closefs.c b/lib/ext2fs/closefs.c
|
|
||||||
index 1f9911311a1a..ab5b2fb2365e 100644
|
|
||||||
--- a/lib/ext2fs/closefs.c
|
|
||||||
+++ b/lib/ext2fs/closefs.c
|
|
||||||
@@ -287,7 +287,7 @@ errcode_t ext2fs_flush2(ext2_filsys fs, int flags)
|
|
||||||
dgrp_t j;
|
|
||||||
#endif
|
|
||||||
char *group_ptr;
|
|
||||||
- int old_desc_blocks;
|
|
||||||
+ blk64_t old_desc_blocks;
|
|
||||||
struct ext2fs_numeric_progress_struct progress;
|
|
||||||
|
|
||||||
EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
|
|
||||||
@@ -346,7 +346,7 @@ errcode_t ext2fs_flush2(ext2_filsys fs, int flags)
|
|
||||||
group_ptr = (char *) group_shadow;
|
|
||||||
if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) {
|
|
||||||
old_desc_blocks = fs->super->s_first_meta_bg;
|
|
||||||
- if (old_desc_blocks > fs->super->s_first_meta_bg)
|
|
||||||
+ if (old_desc_blocks > fs->desc_blocks)
|
|
||||||
old_desc_blocks = fs->desc_blocks;
|
|
||||||
} else
|
|
||||||
old_desc_blocks = fs->desc_blocks;
|
|
||||||
--
|
|
||||||
2.1.4
|
|
||||||
|
|
6
pre_checkin.sh
Normal file
6
pre_checkin.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
sed -e 's/Name:.*/Name: e2fsprogs-mini/' \
|
||||||
|
-e 's/spec file for package.*/&-mini/' \
|
||||||
|
-e 's/%define.*build_mini.*/%define build_mini 1/' e2fsprogs.spec > e2fsprogs-mini.spec
|
||||||
|
cp e2fsprogs.changes e2fsprogs-mini.changes
|
||||||
|
|
@ -1,222 +0,0 @@
|
|||||||
From 1e33a8b408123a4e02a6b9135807f6fd61f3e235 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
Date: Sat, 26 Jul 2014 07:40:36 -0400
|
|
||||||
Subject: [PATCH] Fix 32/64-bit overflow when multiplying by blocks/clusters
|
|
||||||
per group
|
|
||||||
References: bsc#1009532
|
|
||||||
|
|
||||||
There are a number of places where we need convert groups to blocks or
|
|
||||||
clusters by multiply the groups by blocks/clusters per group.
|
|
||||||
Unfortunately, both quantities are 32-bit, but the result needs to be
|
|
||||||
64-bit, and very often the cast to 64-bit gets lost.
|
|
||||||
|
|
||||||
Fix this by adding new macros, EXT2_GROUPS_TO_BLOCKS() and
|
|
||||||
EXT2_GROUPS_TO_CLUSTERS().
|
|
||||||
|
|
||||||
This should fix a bug where resizing a 64bit file system can result in
|
|
||||||
calculate_minimum_resize_size() looping forever.
|
|
||||||
|
|
||||||
Addresses-Launchpad-Bug: #1321958
|
|
||||||
|
|
||||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
|
||||||
---
|
|
||||||
e2fsck/pass5.c | 2 +-
|
|
||||||
e2fsck/super.c | 2 +-
|
|
||||||
lib/ext2fs/blknum.c | 2 +-
|
|
||||||
lib/ext2fs/ext2_fs.h | 5 +++++
|
|
||||||
lib/ext2fs/imager.c | 14 +++++++-------
|
|
||||||
lib/ext2fs/rw_bitmaps.c | 4 ++--
|
|
||||||
misc/tune2fs.c | 2 +-
|
|
||||||
resize/resize2fs.c | 11 +++++------
|
|
||||||
8 files changed, 23 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/e2fsck/pass5.c b/e2fsck/pass5.c
|
|
||||||
index d0b1ced512ce..bc9a32a321e0 100644
|
|
||||||
--- a/e2fsck/pass5.c
|
|
||||||
+++ b/e2fsck/pass5.c
|
|
||||||
@@ -776,7 +776,7 @@ static void check_block_end(e2fsck_t ctx)
|
|
||||||
clear_problem_context(&pctx);
|
|
||||||
|
|
||||||
end = ext2fs_get_block_bitmap_start2(fs->block_map) +
|
|
||||||
- ((blk64_t)EXT2_CLUSTERS_PER_GROUP(fs->super) * fs->group_desc_count) - 1;
|
|
||||||
+ EXT2_GROUPS_TO_CLUSTERS(fs->super, fs->group_desc_count) - 1;
|
|
||||||
pctx.errcode = ext2fs_fudge_block_bitmap_end2(fs->block_map, end,
|
|
||||||
&save_blocks_count);
|
|
||||||
if (pctx.errcode) {
|
|
||||||
diff --git a/e2fsck/super.c b/e2fsck/super.c
|
|
||||||
index 81503d4b9b70..8d468e63d517 100644
|
|
||||||
--- a/e2fsck/super.c
|
|
||||||
+++ b/e2fsck/super.c
|
|
||||||
@@ -421,7 +421,7 @@ void check_resize_inode(e2fsck_t ctx)
|
|
||||||
for (j = 1; j < fs->group_desc_count; j++) {
|
|
||||||
if (!ext2fs_bg_has_super(fs, j))
|
|
||||||
continue;
|
|
||||||
- expect = pblk + (j * fs->super->s_blocks_per_group);
|
|
||||||
+ expect = pblk + EXT2_GROUPS_TO_BLOCKS(fs->super, j);
|
|
||||||
if (ind_buf[ind_off] != expect)
|
|
||||||
goto resize_inode_invalid;
|
|
||||||
ind_off++;
|
|
||||||
diff --git a/lib/ext2fs/blknum.c b/lib/ext2fs/blknum.c
|
|
||||||
index 8ced1eec6838..7ce6053497f9 100644
|
|
||||||
--- a/lib/ext2fs/blknum.c
|
|
||||||
+++ b/lib/ext2fs/blknum.c
|
|
||||||
@@ -29,7 +29,7 @@ dgrp_t ext2fs_group_of_blk2(ext2_filsys fs, blk64_t blk)
|
|
||||||
blk64_t ext2fs_group_first_block2(ext2_filsys fs, dgrp_t group)
|
|
||||||
{
|
|
||||||
return fs->super->s_first_data_block +
|
|
||||||
- ((blk64_t)group * fs->super->s_blocks_per_group);
|
|
||||||
+ EXT2_GROUPS_TO_BLOCKS(fs->super, group);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h
|
|
||||||
index d9e14d7cee6c..6c3620cbe6e0 100644
|
|
||||||
--- a/lib/ext2fs/ext2_fs.h
|
|
||||||
+++ b/lib/ext2fs/ext2_fs.h
|
|
||||||
@@ -264,6 +264,11 @@ struct ext2_dx_countlimit {
|
|
||||||
#define EXT2_DESC_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#define EXT2_GROUPS_TO_BLOCKS(s, g) ((blk64_t) EXT2_BLOCKS_PER_GROUP(s) * \
|
|
||||||
+ (g))
|
|
||||||
+#define EXT2_GROUPS_TO_CLUSTERS(s, g) ((blk64_t) EXT2_CLUSTERS_PER_GROUP(s) * \
|
|
||||||
+ (g))
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Constants relative to the data blocks
|
|
||||||
*/
|
|
||||||
diff --git a/lib/ext2fs/imager.c b/lib/ext2fs/imager.c
|
|
||||||
index 378a3c885989..b643cc6f3fa0 100644
|
|
||||||
--- a/lib/ext2fs/imager.c
|
|
||||||
+++ b/lib/ext2fs/imager.c
|
|
||||||
@@ -286,8 +286,8 @@ errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags)
|
|
||||||
ext2fs_generic_bitmap bmap;
|
|
||||||
errcode_t retval;
|
|
||||||
ssize_t actual;
|
|
||||||
- __u32 itr, cnt, size;
|
|
||||||
- int c, total_size;
|
|
||||||
+ size_t c;
|
|
||||||
+ __u64 itr, cnt, size, total_size;
|
|
||||||
char buf[1024];
|
|
||||||
|
|
||||||
if (flags & IMAGER_FLAG_INODEMAP) {
|
|
||||||
@@ -308,7 +308,7 @@ errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags)
|
|
||||||
}
|
|
||||||
bmap = fs->block_map;
|
|
||||||
itr = fs->super->s_first_data_block;
|
|
||||||
- cnt = EXT2_BLOCKS_PER_GROUP(fs->super) * fs->group_desc_count;
|
|
||||||
+ cnt = EXT2_GROUPS_TO_BLOCKS(fs->super, fs->group_desc_count);
|
|
||||||
size = EXT2_BLOCKS_PER_GROUP(fs->super) / 8;
|
|
||||||
}
|
|
||||||
total_size = size * fs->group_desc_count;
|
|
||||||
@@ -342,9 +342,9 @@ errcode_t ext2fs_image_bitmap_write(ext2_filsys fs, int fd, int flags)
|
|
||||||
if (c > (int) sizeof(buf))
|
|
||||||
c = sizeof(buf);
|
|
||||||
actual = write(fd, buf, c);
|
|
||||||
- if (actual == -1)
|
|
||||||
+ if (actual < 0)
|
|
||||||
return errno;
|
|
||||||
- if (actual != c)
|
|
||||||
+ if ((size_t) actual != c)
|
|
||||||
return EXT2_ET_SHORT_WRITE;
|
|
||||||
size -= c;
|
|
||||||
}
|
|
||||||
@@ -360,7 +360,7 @@ errcode_t ext2fs_image_bitmap_read(ext2_filsys fs, int fd, int flags)
|
|
||||||
{
|
|
||||||
ext2fs_generic_bitmap bmap;
|
|
||||||
errcode_t retval;
|
|
||||||
- __u32 itr, cnt;
|
|
||||||
+ __u64 itr, cnt;
|
|
||||||
char buf[1024];
|
|
||||||
unsigned int size;
|
|
||||||
ssize_t actual;
|
|
||||||
@@ -383,7 +383,7 @@ errcode_t ext2fs_image_bitmap_read(ext2_filsys fs, int fd, int flags)
|
|
||||||
}
|
|
||||||
bmap = fs->block_map;
|
|
||||||
itr = fs->super->s_first_data_block;
|
|
||||||
- cnt = EXT2_BLOCKS_PER_GROUP(fs->super) * fs->group_desc_count;
|
|
||||||
+ cnt = EXT2_GROUPS_TO_BLOCKS(fs->super, fs->group_desc_count);
|
|
||||||
size = EXT2_BLOCKS_PER_GROUP(fs->super) / 8;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/lib/ext2fs/rw_bitmaps.c b/lib/ext2fs/rw_bitmaps.c
|
|
||||||
index d24ba9a3feca..a07ecd579a77 100644
|
|
||||||
--- a/lib/ext2fs/rw_bitmaps.c
|
|
||||||
+++ b/lib/ext2fs/rw_bitmaps.c
|
|
||||||
@@ -262,8 +262,8 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
|
|
||||||
}
|
|
||||||
blk = (fs->image_header->offset_blockmap /
|
|
||||||
fs->blocksize);
|
|
||||||
- blk_cnt = (blk64_t)EXT2_CLUSTERS_PER_GROUP(fs->super) *
|
|
||||||
- fs->group_desc_count;
|
|
||||||
+ blk_cnt = EXT2_GROUPS_TO_CLUSTERS(fs->super,
|
|
||||||
+ fs->group_desc_count);
|
|
||||||
while (block_nbytes > 0) {
|
|
||||||
retval = io_channel_read_blk64(fs->image_io, blk++,
|
|
||||||
1, block_bitmap);
|
|
||||||
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
|
|
||||||
index 6b2123518240..ad0b05f1931b 100644
|
|
||||||
--- a/misc/tune2fs.c
|
|
||||||
+++ b/misc/tune2fs.c
|
|
||||||
@@ -1383,7 +1383,7 @@ static int ext2fs_is_block_in_group(ext2_filsys fs, dgrp_t group, blk64_t blk)
|
|
||||||
{
|
|
||||||
blk64_t start_blk, end_blk;
|
|
||||||
start_blk = fs->super->s_first_data_block +
|
|
||||||
- EXT2_BLOCKS_PER_GROUP(fs->super) * group;
|
|
||||||
+ EXT2_GROUPS_TO_BLOCKS(fs->super, group);
|
|
||||||
/*
|
|
||||||
* We cannot get new block beyond end_blk for for the last block group
|
|
||||||
* so we can check with EXT2_BLOCKS_PER_GROUP even for last block group
|
|
||||||
diff --git a/resize/resize2fs.c b/resize/resize2fs.c
|
|
||||||
index 6bd2e1c62f7b..9641b1e5807e 100644
|
|
||||||
--- a/resize/resize2fs.c
|
|
||||||
+++ b/resize/resize2fs.c
|
|
||||||
@@ -436,8 +436,7 @@ retry:
|
|
||||||
fs->inode_map);
|
|
||||||
if (retval) goto errout;
|
|
||||||
|
|
||||||
- real_end = (((blk64_t) EXT2_BLOCKS_PER_GROUP(fs->super) *
|
|
||||||
- fs->group_desc_count)) - 1 +
|
|
||||||
+ real_end = EXT2_GROUPS_TO_BLOCKS(fs->super, fs->group_desc_count) - 1 +
|
|
||||||
fs->super->s_first_data_block;
|
|
||||||
retval = ext2fs_resize_block_bitmap2(new_size - 1,
|
|
||||||
real_end, fs->block_map);
|
|
||||||
@@ -2318,7 +2317,7 @@ blk64_t calculate_minimum_resize_size(ext2_filsys fs, int flags)
|
|
||||||
fs->super->s_free_inodes_count;
|
|
||||||
blks_needed = ext2fs_div_ceil(inode_count,
|
|
||||||
fs->super->s_inodes_per_group) *
|
|
||||||
- EXT2_BLOCKS_PER_GROUP(fs->super);
|
|
||||||
+ (blk64_t) EXT2_BLOCKS_PER_GROUP(fs->super);
|
|
||||||
groups = ext2fs_div64_ceil(blks_needed,
|
|
||||||
EXT2_BLOCKS_PER_GROUP(fs->super));
|
|
||||||
#ifdef RESIZE2FS_DEBUG
|
|
||||||
@@ -2365,7 +2364,7 @@ blk64_t calculate_minimum_resize_size(ext2_filsys fs, int flags)
|
|
||||||
* figure out how many data blocks we have given the number of groups
|
|
||||||
* we need for our inodes
|
|
||||||
*/
|
|
||||||
- data_blocks = groups * EXT2_BLOCKS_PER_GROUP(fs->super);
|
|
||||||
+ data_blocks = EXT2_GROUPS_TO_BLOCKS(fs->super, groups);
|
|
||||||
last_start = 0;
|
|
||||||
for (grp = 0; grp < flex_groups; grp++) {
|
|
||||||
overhead = calc_group_overhead(fs, grp, old_desc_blocks);
|
|
||||||
@@ -2403,7 +2402,7 @@ blk64_t calculate_minimum_resize_size(ext2_filsys fs, int flags)
|
|
||||||
extra_grps = ext2fs_div64_ceil(remainder,
|
|
||||||
EXT2_BLOCKS_PER_GROUP(fs->super));
|
|
||||||
|
|
||||||
- data_blocks += extra_grps * EXT2_BLOCKS_PER_GROUP(fs->super);
|
|
||||||
+ data_blocks += EXT2_GROUPS_TO_BLOCKS(fs->super, extra_grps);
|
|
||||||
|
|
||||||
/* ok we have to account for the last group */
|
|
||||||
overhead = calc_group_overhead(fs, groups-1, old_desc_blocks);
|
|
||||||
@@ -2501,7 +2500,7 @@ blk64_t calculate_minimum_resize_size(ext2_filsys fs, int flags)
|
|
||||||
* blocks needed to handle the group descriptor metadata+data
|
|
||||||
* that we need
|
|
||||||
*/
|
|
||||||
- blks_needed = (groups-1) * EXT2_BLOCKS_PER_GROUP(fs->super);
|
|
||||||
+ blks_needed = EXT2_GROUPS_TO_BLOCKS(fs->super, groups - 1);
|
|
||||||
blks_needed += overhead;
|
|
||||||
|
|
||||||
/*
|
|
||||||
--
|
|
||||||
2.6.6
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user