MFH: r470322
Update to new upstream release 1.44.2. Most important changes over 1.44.1_1: e2fsck: adjust quota counters when clearing orphaned inodes e2fsprogs: fix Free Software Foundation address mke2fs: print error string if ext2fs_close_free() fails po: update pl.po (from translationproject.org) Use @AR@ instead of hardcoded 'ar' Changelog over 1.44.1: <http://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.44.2> Approved by: ports-secteam (riggs@)
This commit is contained in:
parent
b67962077b
commit
78cee9b1b5
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/branches/2018Q2/; revision=470493
@ -2,8 +2,8 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= e2fsprogs
|
||||
PORTVERSION= 1.44.1
|
||||
PORTREVISION?= 1
|
||||
PORTVERSION= 1.44.2
|
||||
PORTREVISION?= 0
|
||||
CATEGORIES?= sysutils
|
||||
MASTER_SITES= KERNEL_ORG/linux/kernel/people/tytso/${PORTNAME}/v${PORTVERSION}
|
||||
|
||||
|
@ -1,3 +1,3 @@
|
||||
TIMESTAMP = 1524922817
|
||||
SHA256 (e2fsprogs-1.44.1.tar.xz) = 0ca164c1c87724df904c918b2d7051ef989b51de725db66c67514dbe6dd2b9ef
|
||||
SIZE (e2fsprogs-1.44.1.tar.xz) = 5331960
|
||||
TIMESTAMP = 1526665210
|
||||
SHA256 (e2fsprogs-1.44.2.tar.xz) = 8324cf0b6e81805a741d94087b00e99f7e16144f1ee5a413709a1fa6948b126c
|
||||
SIZE (e2fsprogs-1.44.2.tar.xz) = 5349784
|
||||
|
@ -1,13 +0,0 @@
|
||||
--- tests/f_bigalloc_badinode/script.orig 2018-03-25 02:42:47 UTC
|
||||
+++ tests/f_bigalloc_badinode/script
|
||||
@@ -6,8 +6,8 @@ TEST_DATA="$test_name.tmp"
|
||||
dd if=$TEST_BITS of=$TEST_DATA bs=4k count=2 seek=1> /dev/null 2>&1
|
||||
|
||||
touch $TMPFILE
|
||||
-mke2fs -Fq -t ext4 -O bigalloc -C 16384 $TMPFILE 1M > /dev/null 2>&1
|
||||
-debugfs -w $TMPFILE << EOF > /dev/null 2>&1
|
||||
+$MKE2FS -Fq -t ext4 -O bigalloc -C 16384 $TMPFILE 1M > /dev/null 2>&1
|
||||
+$DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
|
||||
write $TEST_DATA testfile
|
||||
set_inode_field testfile i_mode 0120000
|
||||
quit
|
@ -1,13 +0,0 @@
|
||||
--- tests/f_bigalloc_orphan_list/script.orig 2018-03-25 02:42:47 UTC
|
||||
+++ tests/f_bigalloc_orphan_list/script
|
||||
@@ -6,8 +6,8 @@ TEST_DATA="$test_name.tmp"
|
||||
dd if=$TEST_BITS of=$TEST_DATA bs=28k count=1 > /dev/null 2>&1
|
||||
|
||||
touch $TMPFILE
|
||||
-mke2fs -Fq -t ext4 -O bigalloc $TMPFILE 1M > /dev/null 2>&1
|
||||
-debugfs -w $TMPFILE << EOF > /dev/null 2>&1
|
||||
+$MKE2FS -Fq -t ext4 -O bigalloc $TMPFILE 1M > /dev/null 2>&1
|
||||
+$DEBUGFS -w $TMPFILE << EOF > /dev/null 2>&1
|
||||
write $TEST_DATA testfile
|
||||
set_inode_field testfile links_count 0
|
||||
set_inode_field testfile bmap[0] 0
|
@ -1,34 +0,0 @@
|
||||
From 17a1f2c1929630e3a79e6b98168d56f96acf2e8b Mon Sep 17 00:00:00 2001
|
||||
From: Andreas Dilger <adilger@dilger.ca>
|
||||
Date: Thu, 29 Mar 2018 12:36:54 -0600
|
||||
Subject: filefrag: avoid temporary buffer overflow
|
||||
|
||||
If an unknown flag is present in a FIEMAP extent, it is printed as a
|
||||
hex value into a temporary buffer before adding it to the flags. If
|
||||
that unknown flag is over 0xfff then it will overflow the temporary
|
||||
buffer.
|
||||
|
||||
Reported-by: Sarah Liu <wei3.liu@intel.com>
|
||||
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-10335
|
||||
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
|
||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||||
---
|
||||
misc/filefrag.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/misc/filefrag.c b/misc/filefrag.c
|
||||
index 9c57ab9..dc00393 100644
|
||||
--- ./misc/filefrag.c
|
||||
+++ b/misc/filefrag.c
|
||||
@@ -179,7 +179,7 @@ static void print_extent_info(struct fiemap_extent *fm_extent, int cur_ex,
|
||||
print_flag(&fe_flags, FIEMAP_EXTENT_SHARED, flags, "shared,");
|
||||
/* print any unknown flags as hex values */
|
||||
for (mask = 1; fe_flags != 0 && mask != 0; mask <<= 1) {
|
||||
- char hex[6];
|
||||
+ char hex[sizeof(mask) * 2 + 4]; /* 2 chars/byte + 0x, + NUL */
|
||||
|
||||
if ((fe_flags & mask) == 0)
|
||||
continue;
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -1,73 +0,0 @@
|
||||
From 9db53e3fec3413572a2240bd374e76353fab9cbe Mon Sep 17 00:00:00 2001
|
||||
From: Theodore Ts'o <tytso@mit.edu>
|
||||
Date: Sat, 7 Apr 2018 00:28:49 -0400
|
||||
Subject: libext2fs: add sanity checks for ea_in_inode
|
||||
|
||||
An inode containing the value for an extended attribute (aka an
|
||||
ea_in_inode) must not have the INLINE_DATA flag and must have the
|
||||
EA_INODE flag set. Enforcing this prevents e2fsck and debugfs crashes
|
||||
caused by a maliciously crafted file system containing an inode which
|
||||
has both the EA_INODE and INLINE_DATA flags set, and where that inode
|
||||
has an extended attribute whose e_value_inum points to itself.
|
||||
|
||||
Reported-by: Wen Xu <wen.xu@gatech.edu>
|
||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||||
---
|
||||
e2fsck/pass1.c | 1 +
|
||||
lib/ext2fs/ext2_err.et.in | 3 +++
|
||||
lib/ext2fs/ext_attr.c | 8 +++++++-
|
||||
3 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/e2fsck/pass1.c b/e2fsck/pass1.c
|
||||
index fccd881..69b3f09 100644
|
||||
--- ./e2fsck/pass1.c
|
||||
+++ b/e2fsck/pass1.c
|
||||
@@ -1542,6 +1542,7 @@ void e2fsck_pass1(e2fsck_t ctx)
|
||||
case EXT2_ET_NO_INLINE_DATA:
|
||||
case EXT2_ET_EXT_ATTR_CSUM_INVALID:
|
||||
case EXT2_ET_EA_BAD_VALUE_OFFSET:
|
||||
+ case EXT2_ET_EA_INODE_CORRUPTED:
|
||||
/* broken EA or no system.data EA; truncate */
|
||||
if (fix_problem(ctx, PR_1_INLINE_DATA_NO_ATTR,
|
||||
&pctx)) {
|
||||
diff --git a/lib/ext2fs/ext2_err.et.in b/lib/ext2fs/ext2_err.et.in
|
||||
index ac96964..16abd23 100644
|
||||
--- ./lib/ext2fs/ext2_err.et.in
|
||||
+++ b/lib/ext2fs/ext2_err.et.in
|
||||
@@ -542,4 +542,7 @@ ec EXT2_ET_CORRUPT_JOURNAL_SB,
|
||||
ec EXT2_ET_INODE_CORRUPTED,
|
||||
"Inode is corrupted"
|
||||
|
||||
+ec EXT2_ET_EA_INODE_CORRUPTED,
|
||||
+ "Inode containing extended attribute value is corrupted"
|
||||
+
|
||||
end
|
||||
diff --git a/lib/ext2fs/ext_attr.c b/lib/ext2fs/ext_attr.c
|
||||
index 89c5f2c..81b067a 100644
|
||||
--- ./lib/ext2fs/ext_attr.c
|
||||
+++ b/lib/ext2fs/ext_attr.c
|
||||
@@ -903,6 +903,7 @@ static errcode_t read_xattrs_from_buffer(struct ext2_xattr_handle *handle,
|
||||
memcpy(x->value, value_start + entry->e_value_offs,
|
||||
entry->e_value_size);
|
||||
} else {
|
||||
+ struct ext2_inode *ea_inode;
|
||||
ext2_file_t ea_file;
|
||||
|
||||
if (entry->e_value_offs != 0)
|
||||
@@ -920,7 +921,12 @@ static errcode_t read_xattrs_from_buffer(struct ext2_xattr_handle *handle,
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
- if (ext2fs_file_get_size(ea_file) !=
|
||||
+ ea_inode = ext2fs_file_get_inode(ea_file);
|
||||
+ if ((ea_inode->i_flags & EXT4_INLINE_DATA_FL) ||
|
||||
+ !(ea_inode->i_flags & EXT4_EA_INODE_FL) ||
|
||||
+ ea_inode->i_links_count == 0)
|
||||
+ err = EXT2_ET_EA_INODE_CORRUPTED;
|
||||
+ else if (ext2fs_file_get_size(ea_file) !=
|
||||
entry->e_value_size)
|
||||
err = EXT2_ET_EA_BAD_VALUE_SIZE;
|
||||
else
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -1,226 +0,0 @@
|
||||
From bfc1856029ff6851845de27114fea899bbdbccbe Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Czerner <lczerner@redhat.com>
|
||||
Date: Mon, 9 Apr 2018 11:58:15 -0400
|
||||
Subject: e2image: fix metadata image handling on big endian systems
|
||||
|
||||
Currently e2image metadata image handling and creating is completely
|
||||
broken on big endian systems. It just does not care about endianness at
|
||||
all. This was uncovered With addition of i_bitmaps test, which is the
|
||||
first test that actually tests e2image metadata image.
|
||||
|
||||
Fix it by making sure that all on-disk metadata that we write and read
|
||||
to/from the metadata image is properly converted.
|
||||
|
||||
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
|
||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||||
---
|
||||
lib/ext2fs/imager.c | 41 +++++++++++++++++++++++++++++++++++++++++
|
||||
lib/ext2fs/inode.c | 2 +-
|
||||
lib/ext2fs/openfs.c | 4 ++--
|
||||
lib/ext2fs/rw_bitmaps.c | 4 ++--
|
||||
misc/e2image.c | 22 +++++++++++-----------
|
||||
5 files changed, 57 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/lib/ext2fs/imager.c b/lib/ext2fs/imager.c
|
||||
index efb85b9..7fd06f7 100644
|
||||
--- ./lib/ext2fs/imager.c
|
||||
+++ b/lib/ext2fs/imager.c
|
||||
@@ -195,6 +195,11 @@ errcode_t ext2fs_image_super_write(ext2_filsys fs, int fd,
|
||||
char *buf, *cp;
|
||||
ssize_t actual;
|
||||
errcode_t retval;
|
||||
+#ifdef WORDS_BIGENDIAN
|
||||
+ unsigned int groups_per_block;
|
||||
+ struct ext2_group_desc *gdp;
|
||||
+ int j;
|
||||
+#endif
|
||||
|
||||
buf = malloc(fs->blocksize);
|
||||
if (!buf)
|
||||
@@ -204,7 +209,17 @@ errcode_t ext2fs_image_super_write(ext2_filsys fs, int fd,
|
||||
* Write out the superblock
|
||||
*/
|
||||
memset(buf, 0, fs->blocksize);
|
||||
+#ifdef WORDS_BIGENDIAN
|
||||
+ /*
|
||||
+ * We're writing out superblock so let's convert
|
||||
+ * it to little endian and then back if needed
|
||||
+ */
|
||||
+ ext2fs_swap_super(fs->super);
|
||||
memcpy(buf, fs->super, SUPERBLOCK_SIZE);
|
||||
+ ext2fs_swap_super(fs->super);
|
||||
+#else
|
||||
+ memcpy(buf, fs->super, SUPERBLOCK_SIZE);
|
||||
+#endif
|
||||
actual = write(fd, buf, fs->blocksize);
|
||||
if (actual == -1) {
|
||||
retval = errno;
|
||||
@@ -218,8 +233,34 @@ errcode_t ext2fs_image_super_write(ext2_filsys fs, int fd,
|
||||
/*
|
||||
* Now write out the block group descriptors
|
||||
*/
|
||||
+
|
||||
cp = (char *) fs->group_desc;
|
||||
+
|
||||
+#ifdef WORDS_BIGENDIAN
|
||||
+ /*
|
||||
+ * Convert group descriptors to little endian and back
|
||||
+ * if needed
|
||||
+ */
|
||||
+ groups_per_block = EXT2_DESC_PER_BLOCK(fs->super);
|
||||
+ gdp = (struct ext2_group_desc *) cp;
|
||||
+ for (j=0; j < groups_per_block*fs->desc_blocks; j++) {
|
||||
+ gdp = ext2fs_group_desc(fs, fs->group_desc, j);
|
||||
+ ext2fs_swap_group_desc2(fs, gdp);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
actual = write(fd, cp, fs->blocksize * fs->desc_blocks);
|
||||
+
|
||||
+
|
||||
+#ifdef WORDS_BIGENDIAN
|
||||
+ groups_per_block = EXT2_DESC_PER_BLOCK(fs->super);
|
||||
+ gdp = (struct ext2_group_desc *) cp;
|
||||
+ for (j=0; j < groups_per_block*fs->desc_blocks; j++) {
|
||||
+ gdp = ext2fs_group_desc(fs, fs->group_desc, j);
|
||||
+ ext2fs_swap_group_desc2(fs, gdp);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
if (actual == -1) {
|
||||
retval = errno;
|
||||
goto errout;
|
||||
diff --git a/lib/ext2fs/inode.c b/lib/ext2fs/inode.c
|
||||
index ad01a9f..015cfe4 100644
|
||||
--- ./lib/ext2fs/inode.c
|
||||
+++ b/lib/ext2fs/inode.c
|
||||
@@ -770,7 +770,7 @@ errcode_t ext2fs_read_inode_full(ext2_filsys fs, ext2_ino_t ino,
|
||||
}
|
||||
if (fs->flags & EXT2_FLAG_IMAGE_FILE) {
|
||||
inodes_per_block = fs->blocksize / EXT2_INODE_SIZE(fs->super);
|
||||
- block_nr = fs->image_header->offset_inode / fs->blocksize;
|
||||
+ block_nr = ext2fs_le32_to_cpu(fs->image_header->offset_inode) / fs->blocksize;
|
||||
block_nr += (ino - 1) / inodes_per_block;
|
||||
offset = ((ino - 1) % inodes_per_block) *
|
||||
EXT2_INODE_SIZE(fs->super);
|
||||
diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c
|
||||
index 385d6e8..532e70f 100644
|
||||
--- ./lib/ext2fs/openfs.c
|
||||
+++ b/lib/ext2fs/openfs.c
|
||||
@@ -185,10 +185,10 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
|
||||
fs->image_header);
|
||||
if (retval)
|
||||
goto cleanup;
|
||||
- if (fs->image_header->magic_number != EXT2_ET_MAGIC_E2IMAGE)
|
||||
+ if (ext2fs_le32_to_cpu(fs->image_header->magic_number) != EXT2_ET_MAGIC_E2IMAGE)
|
||||
return EXT2_ET_MAGIC_E2IMAGE;
|
||||
superblock = 1;
|
||||
- block_size = fs->image_header->fs_blocksize;
|
||||
+ block_size = ext2fs_le32_to_cpu(fs->image_header->fs_blocksize);
|
||||
}
|
||||
|
||||
/*
|
||||
diff --git a/lib/ext2fs/rw_bitmaps.c b/lib/ext2fs/rw_bitmaps.c
|
||||
index 0b532db..e86bacd 100644
|
||||
--- ./lib/ext2fs/rw_bitmaps.c
|
||||
+++ b/lib/ext2fs/rw_bitmaps.c
|
||||
@@ -253,7 +253,7 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
|
||||
ext2fs_free_mem(&buf);
|
||||
|
||||
if (fs->flags & EXT2_FLAG_IMAGE_FILE) {
|
||||
- blk = (fs->image_header->offset_inodemap / fs->blocksize);
|
||||
+ blk = (ext2fs_le32_to_cpu(fs->image_header->offset_inodemap) / fs->blocksize);
|
||||
ino_cnt = fs->super->s_inodes_count;
|
||||
while (inode_bitmap && ino_cnt > 0) {
|
||||
retval = io_channel_read_blk64(fs->image_io, blk++,
|
||||
@@ -270,7 +270,7 @@ static errcode_t read_bitmaps(ext2_filsys fs, int do_inode, int do_block)
|
||||
ino_itr += cnt;
|
||||
ino_cnt -= cnt;
|
||||
}
|
||||
- blk = (fs->image_header->offset_blockmap /
|
||||
+ blk = (ext2fs_le32_to_cpu(fs->image_header->offset_blockmap) /
|
||||
fs->blocksize);
|
||||
blk_cnt = EXT2_GROUPS_TO_CLUSTERS(fs->super,
|
||||
fs->group_desc_count);
|
||||
diff --git a/misc/e2image.c b/misc/e2image.c
|
||||
index 5a18bb4..83ae633 100644
|
||||
--- ./misc/e2image.c
|
||||
+++ b/misc/e2image.c
|
||||
@@ -240,7 +240,7 @@ static void write_image_file(ext2_filsys fs, int fd)
|
||||
write_header(fd, NULL, sizeof(struct ext2_image_hdr), fs->blocksize);
|
||||
memset(&hdr, 0, sizeof(struct ext2_image_hdr));
|
||||
|
||||
- hdr.offset_super = seek_relative(fd, 0);
|
||||
+ hdr.offset_super = ext2fs_cpu_to_le32(seek_relative(fd, 0));
|
||||
retval = ext2fs_image_super_write(fs, fd, 0);
|
||||
if (retval) {
|
||||
com_err(program_name, retval, "%s",
|
||||
@@ -248,7 +248,7 @@ static void write_image_file(ext2_filsys fs, int fd)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
- hdr.offset_inode = seek_relative(fd, 0);
|
||||
+ hdr.offset_inode = ext2fs_cpu_to_le32(seek_relative(fd, 0));
|
||||
retval = ext2fs_image_inode_write(fs, fd,
|
||||
(fd != 1) ? IMAGER_FLAG_SPARSEWRITE : 0);
|
||||
if (retval) {
|
||||
@@ -257,7 +257,7 @@ static void write_image_file(ext2_filsys fs, int fd)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
- hdr.offset_blockmap = seek_relative(fd, 0);
|
||||
+ hdr.offset_blockmap = ext2fs_cpu_to_le32(seek_relative(fd, 0));
|
||||
retval = ext2fs_image_bitmap_write(fs, fd, 0);
|
||||
if (retval) {
|
||||
com_err(program_name, retval, "%s",
|
||||
@@ -265,7 +265,7 @@ static void write_image_file(ext2_filsys fs, int fd)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
- hdr.offset_inodemap = seek_relative(fd, 0);
|
||||
+ hdr.offset_inodemap = ext2fs_cpu_to_le32(seek_relative(fd, 0));
|
||||
retval = ext2fs_image_bitmap_write(fs, fd, IMAGER_FLAG_INODEMAP);
|
||||
if (retval) {
|
||||
com_err(program_name, retval, "%s",
|
||||
@@ -273,23 +273,23 @@ static void write_image_file(ext2_filsys fs, int fd)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
- hdr.magic_number = EXT2_ET_MAGIC_E2IMAGE;
|
||||
+ hdr.magic_number = ext2fs_cpu_to_le32(EXT2_ET_MAGIC_E2IMAGE);
|
||||
strcpy(hdr.magic_descriptor, "Ext2 Image 1.0");
|
||||
gethostname(hdr.fs_hostname, sizeof(hdr.fs_hostname));
|
||||
strncpy(hdr.fs_device_name, device_name, sizeof(hdr.fs_device_name)-1);
|
||||
hdr.fs_device_name[sizeof(hdr.fs_device_name) - 1] = 0;
|
||||
- hdr.fs_blocksize = fs->blocksize;
|
||||
+ hdr.fs_blocksize = ext2fs_cpu_to_le32(fs->blocksize);
|
||||
|
||||
if (stat(device_name, &st) == 0)
|
||||
- hdr.fs_device = st.st_rdev;
|
||||
+ hdr.fs_device = ext2fs_cpu_to_le32(st.st_rdev);
|
||||
|
||||
if (fstat(fd, &st) == 0) {
|
||||
- hdr.image_device = st.st_dev;
|
||||
- hdr.image_inode = st.st_ino;
|
||||
+ hdr.image_device = ext2fs_cpu_to_le32(st.st_dev);
|
||||
+ hdr.image_inode = ext2fs_cpu_to_le32(st.st_ino);
|
||||
}
|
||||
memcpy(hdr.fs_uuid, fs->super->s_uuid, sizeof(hdr.fs_uuid));
|
||||
|
||||
- hdr.image_time = time(0);
|
||||
+ hdr.image_time = ext2fs_cpu_to_le32(time(0));
|
||||
write_header(fd, &hdr, sizeof(struct ext2_image_hdr), fs->blocksize);
|
||||
}
|
||||
|
||||
@@ -1423,7 +1423,7 @@ static void install_image(char *device, char *image_fn, int type)
|
||||
|
||||
ext2fs_rewrite_to_io(fs, io);
|
||||
|
||||
- seek_set(fd, fs->image_header->offset_inode);
|
||||
+ seek_set(fd, ext2fs_le32_to_cpu(fs->image_header->offset_inode));
|
||||
|
||||
retval = ext2fs_image_inode_read(fs, fd, 0);
|
||||
if (retval) {
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -1,39 +0,0 @@
|
||||
From 4c41e6801fad37fedbbe8feb849eec190b41a733 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Sandeen <sandeen@redhat.com>
|
||||
Date: Mon, 9 Apr 2018 15:28:12 -0400
|
||||
Subject: e2fsck: warn if checkinterval and broken_system_clock both set
|
||||
|
||||
If broken_system_clock is set in e2fsck.conf and this causes
|
||||
the check interval to be ignored, make that clear to the user:
|
||||
|
||||
e2fsck 1.44.1 (24-Mar-2018)
|
||||
/dev/sda1: ignoring check interval, broken_system_clock set
|
||||
/dev/sda1: clean, 11/65536 files, 12955/262144 blocks
|
||||
|
||||
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
|
||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||||
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
|
||||
---
|
||||
e2fsck/unix.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/e2fsck/unix.c b/e2fsck/unix.c
|
||||
index faf5af9..cbe5ec5 100644
|
||||
--- ./e2fsck/unix.c
|
||||
+++ b/e2fsck/unix.c
|
||||
@@ -396,7 +396,12 @@ static void check_if_skip(e2fsck_t ctx)
|
||||
if (batt && ((ctx->now - fs->super->s_lastcheck) <
|
||||
fs->super->s_checkinterval*2))
|
||||
reason = 0;
|
||||
+ } else if (broken_system_clock && fs->super->s_checkinterval) {
|
||||
+ log_out(ctx, "%s: ", ctx->device_name);
|
||||
+ log_out(ctx, "%s",
|
||||
+ _("ignoring check interval, broken_system_clock set\n"));
|
||||
}
|
||||
+
|
||||
if (reason) {
|
||||
log_out(ctx, "%s", ctx->device_name);
|
||||
log_out(ctx, reason, reason_arg);
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -1,24 +0,0 @@
|
||||
From 2bb826370c12f599fe6cc401fa83a0e7a592f0df Mon Sep 17 00:00:00 2001
|
||||
From: Theodore Ts'o <tytso@mit.edu>
|
||||
Date: Mon, 9 Apr 2018 15:37:00 -0400
|
||||
Subject: tests: don't leave temp files behind after running i_bitmaps
|
||||
|
||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||||
---
|
||||
tests/i_bitmaps/script | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/i_bitmaps/script b/tests/i_bitmaps/script
|
||||
index b8e3bd2..1a16d55 100644
|
||||
--- ./tests/i_bitmaps/script
|
||||
+++ b/tests/i_bitmaps/script
|
||||
@@ -24,5 +24,5 @@ else
|
||||
rm -f $test_name.tmp
|
||||
fi
|
||||
|
||||
-rm -rf $TMPFILE $TMPFILE.bin $TMPFILE.1
|
||||
+rm -rf $TMPFILE $TMPFILE.bin $TMPFILE.1 $TMPFILE.2 $TMPFILE.e2i
|
||||
unset IMAGE FSCK_OPT OUT EXP
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -1,71 +0,0 @@
|
||||
From b46fbf3d52e722d9810dad97a5fa443b280c8a82 Mon Sep 17 00:00:00 2001
|
||||
From: Theodore Ts'o <tytso@mit.edu>
|
||||
Date: Sat, 7 Apr 2018 01:12:00 -0400
|
||||
Subject: tests: add new test f_ea_inode_self_ref
|
||||
|
||||
Make sure we can handle a maliciously created file system containing
|
||||
an inode containing an extended attribute whose e_value_inum points
|
||||
back at itself.
|
||||
|
||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||||
---
|
||||
tests/f_ea_inode_self_ref/expect.1 | 17 +++++++++++++++++
|
||||
tests/f_ea_inode_self_ref/expect.2 | 7 +++++++
|
||||
tests/f_ea_inode_self_ref/image.gz | Bin 0 -> 661 bytes
|
||||
tests/f_ea_inode_self_ref/name | 1 +
|
||||
4 files changed, 25 insertions(+)
|
||||
create mode 100644 tests/f_ea_inode_self_ref/expect.1
|
||||
create mode 100644 tests/f_ea_inode_self_ref/expect.2
|
||||
create mode 100644 tests/f_ea_inode_self_ref/image.gz
|
||||
create mode 100644 tests/f_ea_inode_self_ref/name
|
||||
|
||||
diff --git a/tests/f_ea_inode_self_ref/expect.1 b/tests/f_ea_inode_self_ref/expect.1
|
||||
new file mode 100644
|
||||
index 0000000..f94c04d
|
||||
--- /dev/null
|
||||
+++ b/tests/f_ea_inode_self_ref/expect.1
|
||||
@@ -0,0 +1,17 @@
|
||||
+Pass 1: Checking inodes, blocks, and sizes
|
||||
+Inode 16 has INLINE_DATA_FL flag but extended attribute not found. Truncate? yes
|
||||
+
|
||||
+Extended attribute in inode 16 has a hash (553648128) which is invalid
|
||||
+Clear? yes
|
||||
+
|
||||
+Pass 2: Checking directory structure
|
||||
+Pass 3: Checking directory connectivity
|
||||
+Pass 4: Checking reference counts
|
||||
+Pass 5: Checking group summary information
|
||||
+Block bitmap differences: -20
|
||||
+Fix? yes
|
||||
+
|
||||
+
|
||||
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
|
||||
+test_filesys: 16/16 files (0.0% non-contiguous), 21/100 blocks
|
||||
+Exit status is 1
|
||||
diff --git a/tests/f_ea_inode_self_ref/expect.2 b/tests/f_ea_inode_self_ref/expect.2
|
||||
new file mode 100644
|
||||
index 0000000..9398061
|
||||
--- /dev/null
|
||||
+++ b/tests/f_ea_inode_self_ref/expect.2
|
||||
@@ -0,0 +1,7 @@
|
||||
+Pass 1: Checking inodes, blocks, and sizes
|
||||
+Pass 2: Checking directory structure
|
||||
+Pass 3: Checking directory connectivity
|
||||
+Pass 4: Checking reference counts
|
||||
+Pass 5: Checking group summary information
|
||||
+test_filesys: 16/16 files (0.0% non-contiguous), 21/100 blocks
|
||||
+Exit status is 0
|
||||
diff --git a/tests/f_ea_inode_self_ref/image.gz b/tests/f_ea_inode_self_ref/image.gz
|
||||
new file mode 100644
|
||||
index 0000000..3cc733b
|
||||
Binary files /dev/null and b/tests/f_ea_inode_self_ref/image.gz differ
|
||||
diff --git a/tests/f_ea_inode_self_ref/name b/tests/f_ea_inode_self_ref/name
|
||||
new file mode 100644
|
||||
index 0000000..4e68da8
|
||||
--- /dev/null
|
||||
+++ b/tests/f_ea_inode_self_ref/name
|
||||
@@ -0,0 +1 @@
|
||||
+corrupted, self-referential ea_in_inode
|
||||
--
|
||||
cgit v1.1
|
||||
|
@ -1,45 +0,0 @@
|
||||
From d3f01729bff29e75b21994dc305e09fb055baff3 Mon Sep 17 00:00:00 2001
|
||||
From: Lukas Czerner <lczerner@redhat.com>
|
||||
Date: Fri, 13 Apr 2018 14:27:49 +0200
|
||||
Subject: chattr.1: 'a' and 'i' attribute do not affect existing file
|
||||
descriptors
|
||||
|
||||
Change chattr man page to make it clear that 'i' and 'a' attributes
|
||||
does not affect the ability to write to already existing file
|
||||
descriptors
|
||||
|
||||
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
|
||||
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
|
||||
---
|
||||
misc/chattr.1.in | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/misc/chattr.1.in b/misc/chattr.1.in
|
||||
index fba9cea..028ae9e 100644
|
||||
--- ./misc/chattr.1.in
|
||||
+++ b/misc/chattr.1.in
|
||||
@@ -121,9 +121,9 @@ although it can be displayed by
|
||||
.PP
|
||||
A file with the 'i' attribute cannot be modified: it cannot be deleted or
|
||||
renamed, no link can be created to this file, most of the file's
|
||||
-metadata can not be modified, and no data can be written
|
||||
-to the file. Only the superuser or a process possessing the
|
||||
-CAP_LINUX_IMMUTABLE capability can set or clear this attribute.
|
||||
+metadata can not be modified, and the file can not be opened in write mode.
|
||||
+Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE
|
||||
+capability can set or clear this attribute.
|
||||
.PP
|
||||
The 'I' attribute is used by the htree code to indicate that a directory
|
||||
is being indexed using hashed trees. It may not be set or reset using
|
||||
@@ -191,6 +191,8 @@ maintained by Theodore Ts'o <tytso@alum.mit.edu>.
|
||||
The 'c', 's', and 'u' attributes are not honored
|
||||
by the ext2, ext3, and ext4 filesystems as implemented in the current
|
||||
mainline Linux kernels.
|
||||
+Setting 'a' and 'i' attributes will not affect the ability to write
|
||||
+to already existing file descriptors.
|
||||
.PP
|
||||
The 'j' option is only useful for ext3 and ext4 file systems.
|
||||
.PP
|
||||
--
|
||||
cgit v1.1
|
||||
|
Loading…
Reference in New Issue
Block a user