Whamcloud - gitweb
tools/e2fsprogs.git
16 years agoAdd uuidd daemon to prevent duplicate time-based UUID's
Theodore Ts'o [Sun, 16 Dec 2007 22:21:38 +0000 (17:21 -0500)]
Add uuidd daemon to prevent duplicate time-based UUID's

Also store the clock sequence information in a state file in
/var/lib/misc/uuid-clock so that if the time goes backwards the clock
sequence counter can get bumped.  This allows us to completely
correctly generate time-based (version 1) UUID's according to the
algorithm specified RFC 4122.

Addresses-Sourceforge-Bug: #1529672
Addresses-Red-Hat-Bugzilla: #233471

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agofsck: '#' is only a comment character at the beginning of an fstab line
Theodore Ts'o [Sun, 16 Dec 2007 20:41:15 +0000 (15:41 -0500)]
fsck: '#' is only a comment character at the beginning of an fstab line

Fuse and ssh fstab lines such as:

  wdfs#https://dav.hoster.com/foo/bar /mnt/hoster fuse user,noauto 0 0

will cause fsck to issue warnings about invalid fstab lines, because
fsck was previously treating '#' as a comment when it appeared
anywhere in an fstab line, not just at the beginning of the line.

Addresses-Gentoo-bug: #195405
Addresses-Sourceforge-bug: #1826147

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoblkid: Output non-printing characters using ^ and M- notation
Theodore Ts'o [Sun, 16 Dec 2007 17:26:57 +0000 (12:26 -0500)]
blkid: Output non-printing characters using ^ and M- notation

When printing the value of tags in a formatted format, print control
characters and characters with the high eight bit set using the ^ and
M- notation, respectively.  This prevents a filesystem with a garbage
label from potentially screwing up the user's screen (for example,
putting it into graphical mode).

Addresses-Ubuntu-Bug: #78087

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoRemove Rwandan translation
Theodore Ts'o [Sun, 16 Dec 2007 04:13:05 +0000 (23:13 -0500)]
Remove Rwandan translation

Upon the advice of Benno Schulenberg; the translation had already been
removed on the Translation Project site.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoUpdate Dutch and Polish translations from the Translation Project
Theodore Ts'o [Sun, 16 Dec 2007 04:11:31 +0000 (23:11 -0500)]
Update Dutch and Polish translations from the Translation Project

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agolibcom_err: Fix sign-extension problem on 64-bit systems in error_message()
Theodore Ts'o [Sun, 16 Dec 2007 03:31:03 +0000 (22:31 -0500)]
libcom_err: Fix sign-extension problem on 64-bit systems in error_message()

On 64-bit systems (or anything with sizeof(long) > sizeof(int)), we
sometimes get error codes passed to error_message which have been cast
from an (int) to an (unsigned int). This almost always happens if
you're using libgssapi_krb5, which returns an error code which is less
than 0 but is returned in an (unsigned int).

For example, -1765328377L gets cast to 2529638919, which is
0x96c73a07, not 0xffffffff96c73a07, so error_message() fails to find a
matching error table.

When error_message() then calls the error_table_name() function to get a
name to use in the "unknown code" message, it gets a correct value back.

This happens because error_table_name() drops most of the higher bits of
the parameter it's passed before doing anything else with it (& 077777777f,
or & 0xffffff). If we did the same thing in error_message(), we wouldn't
have a problem there, either.

Problem reported and fixed by: Nalin Dahyabhai

Addresses-Sourceforge-Bug: #1809658

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoblkid: Avoid division by zero error when probing an invalid FAT filesystem
Theodore Ts'o [Sun, 16 Dec 2007 03:21:31 +0000 (22:21 -0500)]
blkid: Avoid division by zero error when probing an invalid FAT filesystem

Addresses-Sourceforge-Bug: #1831627

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agolibss: Fix "make check" test case to work portably
Theodore Ts'o [Sun, 16 Dec 2007 03:09:48 +0000 (22:09 -0500)]
libss: Fix "make check" test case to work portably

The "make check" test in lib/ss would fail if '.' is not in the user's
PATH, and if the libss shared library had not yet been installed yet.

Addresses-Sourceforge-Bug: #1848974

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoFix uuid_unparse man page to give a correct example UUID output string
Theodore Ts'o [Sun, 16 Dec 2007 02:13:42 +0000 (21:13 -0500)]
Fix uuid_unparse man page to give a correct example UUID output string

Addresses-Debian-Bug: #444883

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoFix Debian rules files to support building non-Linux archs
Samuel Thibault [Tue, 14 Aug 2007 09:25:45 +0000 (11:25 +0200)]
Fix Debian rules files to support building non-Linux archs

Addresses-Debian-Bug: #437720

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoFix cross-compilation support in Debian's build rules
Theodore Ts'o [Sun, 16 Dec 2007 01:34:41 +0000 (20:34 -0500)]
Fix cross-compilation support in Debian's build rules

Addresses-Debian-Bug: #451172

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoext2fs_flushfs: Remove the NEEDS_RECOVERY from the backup superblocks
Theodore Ts'o [Sun, 16 Dec 2007 00:39:37 +0000 (19:39 -0500)]
ext2fs_flushfs: Remove the NEEDS_RECOVERY from the backup superblocks

Now that e2fsck tries to backup the primary superblock to the backups
when the feature sets ar different, it's important when tune2fs writes
out a changed superblock, that we filter out the
EXT3_FEATURE_INCOMPAT_RECOVER feature to the backup superblocks, since
it will be removed from the primary superblock either when the
filesystem is mounted uncleanly or when journal is replayed.

Addresses-Debian-Bug: #454926

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoUpdate release notes, version files, etc., for 1.40.3 release. v1.40.3
Theodore Ts'o [Mon, 3 Dec 2007 23:33:39 +0000 (18:33 -0500)]
Update release notes, version files, etc., for 1.40.3 release.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agolibext2fs: Add checks to prevent integer overflows passed to malloc()
Theodore Ts'o [Sat, 10 Nov 2007 00:01:06 +0000 (19:01 -0500)]
libext2fs: Add checks to prevent integer overflows passed to malloc()

This addresses a potential security vulnerability where an untrusted
filesystem can be corrupted in such a way that a program using
libext2fs will allocate a buffer which is far too small.  This can
lead to either a crash or potentially a heap-based buffer overflow
crash.  No known exploits exist, but main concern is where an
untrusted user who possesses privileged access in a guest Xen
environment could corrupt a filesystem which is then accessed by the
pygrub program, running as root in the dom0 host environment, thus
allowing the untrusted user to gain privileged access in the host OS.

Thanks to the McAfee AVERT Research group for reporting this issue.

Addresses CVE-2007-5497.

Signed-off-by: Rafal Wojtczuk <rafal_wojtczuk@mcafee.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoAdd Ubuntu-specific e2fsck.conf file to work around Ubuntu issues
Theodore Ts'o [Thu, 6 Dec 2007 02:01:22 +0000 (21:01 -0500)]
Add Ubuntu-specific e2fsck.conf file to work around Ubuntu issues

Ubuntu has init script and installer issues which cause them to have
significant problems with time zones.  This is compounded with a
relatively inexperienced user base who want to dual boot with Windows
and so have their hardware clocks tick localtime.

Addresses-Ubuntu-Bug: #131201

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoUpdate Debian policy compliance to version 3.7.3.0
Theodore Ts'o [Thu, 6 Dec 2007 01:46:12 +0000 (20:46 -0500)]
Update Debian policy compliance to version 3.7.3.0

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agogen-tarball: Ignore the Meta directory when creating the release tarballs
Theodore Ts'o [Thu, 6 Dec 2007 01:14:43 +0000 (20:14 -0500)]
gen-tarball: Ignore the Meta directory when creating the release tarballs

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoUpdate Spanish translation and e2fsprogs.pot file for 1.40.3 release
Theodore Ts'o [Thu, 6 Dec 2007 00:35:20 +0000 (19:35 -0500)]
Update Spanish translation and e2fsprogs.pot file for 1.40.3 release

Addresses-Debian-Bug: #411562

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agolibss: Fix parallel build failure
Theodore Ts'o [Sun, 2 Dec 2007 10:52:40 +0000 (05:52 -0500)]
libss: Fix parallel build failure

A missing dependency on ss_err.h meant that std_rqs.o could fail when
e2fsprogs was being built using make -j.

Thanks to Robert Kerr for reporting this bug.

Addresses-Sourceforge-Bug: #1842331

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoe2fsprogs: fix blkid whole-disk scanning heuristics
Eric Sandeen [Thu, 29 Nov 2007 18:57:35 +0000 (12:57 -0600)]
e2fsprogs: fix blkid whole-disk scanning heuristics

The heuristics in blkid/devname.c probe_all() for scanning whole disks
with no partitions assume that a device name with no digit on the end
will always be present as a delineator, i.e.:

sda
sda1
sdb
sdc

In this case, when sdc is seen, it's the clue to go back and scan sdb.
However, for something like:

sda
sda1
sdb
loop0

this falls down, and sdb is never scanned.
(thanks to Karel Zak for pointing this out).

Addresses-Red-Hat-Bugzilla: #400321

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agolibext2fs: Fix a corner case bug in ext2fs_unlink
Theodore Ts'o [Sat, 1 Dec 2007 12:08:45 +0000 (07:08 -0500)]
libext2fs: Fix a corner case bug in ext2fs_unlink

We cannot merge a removed directory entry to just arbitrary previous
directory entry. The previous entry must be in the same block.  So
really bad things can happen when are deleting the first directory
entry in a block where the last directory entry in the previous
directory block is not in use.  We fix this bug by checking to see if
the current entry is not the first one in the block before trying to
merge it to the previous entry.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agofix check_mntent_file() to pass mode for open(O_CREAT)
Andreas Dilger [Fri, 9 Nov 2007 01:20:15 +0000 (18:20 -0700)]
fix check_mntent_file() to pass mode for open(O_CREAT)

On my FC8 install, ismounted.c fails to build because open(O_CREAT) is
used without passing a mode.  The following trivial patch fixes it.

Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
16 years agoFix errors in test_ss.c so it can be an example application and test case
Theodore Ts'o [Mon, 26 Nov 2007 12:15:58 +0000 (07:15 -0500)]
Fix errors in test_ss.c so it can be an example application and test case

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
16 years agoe2image in raw-mode appends an extra byte to image-file
Arun Thomas [Fri, 9 Nov 2007 20:46:10 +0000 (15:46 -0500)]
e2image in raw-mode appends an extra byte to image-file

In raw mode (-r), e2image appends an extra byte to the image-file's
end if the last block requires a sparse write. Consequently, the
resulting image-file is one byte larger than the original in
size. This patch fixes the problem by seeking to one less than the
given offset, so that the byte write does not overflow into the next
block.

This problem can be reproduced by doing an e2image -r dev image-file
and comparing the original and resulting image sizes. This assumes the
image is sparse at the end. For my tests, I created a 100MB sparse
image with two files.

Signed-off-by: Arun Thomas <thomasar@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix typo in the summary section of the blkid man page
Theodore Ts'o [Thu, 1 Nov 2007 05:19:32 +0000 (01:19 -0400)]
Fix typo in the summary section of the blkid man page

Addresses-SourceForge-Bug: #1821333

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agomke2fs: Change usage message to use -E instead -R, which is deprecated
Theodore Ts'o [Mon, 15 Oct 2007 20:20:54 +0000 (16:20 -0400)]
mke2fs: Change usage message to use -E instead -R, which is deprecated

The -R option is only used for backwards compatibility, and -E is
preferred, so change the usage message accordingly.

Signed-off-by: Coly Li <coyli@suse.de>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agolibblkid: recognize squashfs filesystems on BE systems.
Eric Sandeen [Mon, 15 Oct 2007 17:48:44 +0000 (12:48 -0500)]
libblkid: recognize squashfs filesystems on BE systems.

squashfs has no uuid or labels, so all we need is the magic
(for big-endian too!)

Addresses-Red-Hat-Bugzilla: #305151

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
17 years agolibblkid: detect squashfs
Eric Sandeen [Tue, 25 Sep 2007 17:02:50 +0000 (12:02 -0500)]
libblkid: detect squashfs

libblkid: recognize squashfs filesystems

squashfs has no uuid or labels, so all we need is the magic.

Addresses-Red-Hat-Bugzilla: #305151

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
17 years agoe2fsck: backup superblocks if key constants have changed
Theodore Ts'o [Mon, 1 Oct 2007 13:18:54 +0000 (09:18 -0400)]
e2fsck: backup superblocks if key constants have changed

If the primary superblock differs from the backup superblock in
certain key respects, force a full check (if e2fsck was invoked in
preen mode).  If the filesystem check passes cleanly, and the
filesystem was opened in read/write mode, then write the primary
superblock to all of the backups.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoe2fsck: update the backup superblocks if the feature bitmasks are changed
Theodore Ts'o [Sat, 6 Oct 2007 16:37:08 +0000 (12:37 -0400)]
e2fsck: update the backup superblocks if the feature bitmasks are changed

If e2fsck adds or deletes any of the feature bitmasks, clear
EXT2_FLAG_MASTER_SB_ONLY so the backup superblocks are updated when
e2fsck finishes.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoext2fs_dblist_dir_iterate: Fix ABORT propagation logic
Theodore Ts'o [Sun, 23 Sep 2007 15:39:24 +0000 (11:39 -0400)]
ext2fs_dblist_dir_iterate: Fix ABORT propagation logic

ext2fs_dblist_dir_iterate() calls ext2fs_dblist_iterate(), which calls
ext2fs_process_dir_block(), which in turn calls the helper function
db_dir_proc() which calls callback function passed into
ext2fs_dblist_dir_iterate().  At each stage the conventions for
signalling requests to abort the iteration or to signal errors
changes, db_dir_proc() was not properly mapping the abort request back
to ext2fs_dblist_iterate().

Currently db_dir_proc() is ignoring errors (i/o errors or directory
block corrupt errors) from ext2fs_process_dir_block(), since the main
user of ext2fs_dblist_dir_iterate() is e2fsck, for which this is the
correct behavior.  In the future ext2fs_dblist_dir_iterate() could
take a flag which would cause it to abort if
ext2fs_process_dir_block() returns an error; however, it's not clear
how useful this would be since we don't have a way of signalling the
exact nature of which block had the error, and the caller wouldn't
have a good way of knowing what percentage of the directory block list
had been processed.  Ultimately this may not be the best interface for
applications that need that level of error reporting.

Thanks to Vladimir V. Saveliev <vs@clusterfs.com> for pointing out
this problem.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agolibblkid: Add more magic numbers that might mean there is a FAT filesystem
Theodore Ts'o [Sun, 23 Sep 2007 13:50:11 +0000 (09:50 -0400)]
libblkid: Add more magic numbers that might mean there is a FAT filesystem

The FAT filesystem doesn't have its superblock with a set of magic
strings in a fixed location.  Therefore, we must also check for the
FAT filesystem if it looks like we have an MBR at the beginning of the
partition.  We previously checked if the first byte was a jump
instruction but that missed some USB disks with only one bootable
partition.  Now we check for the MBR signature (0x55AA at offset 510)
as well as any partition where byte 0 is \351 or \353.

Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoe2fsck: Don't mark the filesystem invalid because of time errors
Theodore Ts'o [Sun, 23 Sep 2007 12:20:51 +0000 (08:20 -0400)]
e2fsck: Don't mark the filesystem invalid because of time errors

If superblock mount time or last write time is in the future, and the
user refuses to fix the problem, don't mark the filesystem as being
invalid and needing to be checked.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoWork around lame Ubuntu init scripts / installer bugs
Theodore Ts'o [Sun, 23 Sep 2007 00:42:04 +0000 (20:42 -0400)]
Work around lame Ubuntu init scripts / installer bugs

The Ubuntu init scripts don't properly set the system time correctly
from hardware clock if the hardware clock is configured to tick local
time instead of GMT time.

Work around this as best as we can by providing an option in
/etc/e2fsck.conf which can be set on Ubuntu systems:

[options]
buggy_init_scripts = 1

Addresses-Debian-Bug: #441093
Addresses-Ubuntu-Bug: #131201

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agofsck: Ignore /etc/fstab entries for bind mounts
Theodore Ts'o [Thu, 20 Sep 2007 19:06:35 +0000 (15:06 -0400)]
fsck: Ignore /etc/fstab entries for bind mounts

If a user specifies a bind mount with a non-zero fsck pass number, for
example:

/foo    /bar    ext3    bind,defaults   1 3

print a warning and ignore the fstab entry.

Addresses-Red-Hat-Bugzilla: #151533

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdd test for the case where s_inode_size is zero
Theodore Ts'o [Fri, 7 Sep 2007 21:06:25 +0000 (17:06 -0400)]
Add test for the case where s_inode_size is zero

Older e2fsck's would crash; e2fsck should now automatically retry
using the backup superblock if it is present.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoDelete the test.img file after running the resize2fs tests
Theodore Ts'o [Fri, 7 Sep 2007 21:03:48 +0000 (17:03 -0400)]
Delete the test.img file after running the resize2fs tests

The resize2fs tests, r_move_itable and r_resize_inode, were not
deleting the test.img tmpfile after completing the test.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoe2fsck: If the superblock is corrupt, automatically retry with the backup sb
Theodore Ts'o [Fri, 7 Sep 2007 20:54:11 +0000 (16:54 -0400)]
e2fsck: If the superblock is corrupt, automatically retry with the backup sb

E2fsck currently only retries with the backup superblock if the
primary superblock is missing (e.g., overwritten with garbage).  If
the superblock is just corrupted enough that it looks like ext2/3/4
superblock, but it is corrupt enough that ext2fs_open2() returns an
error, e2fsck stops without retrying.  Let's fix this oversight.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoDon't crash if s_inode_size is zero
Theodore Ts'o [Fri, 7 Sep 2007 20:40:25 +0000 (16:40 -0400)]
Don't crash if s_inode_size is zero

Any attempt to open a filesystem with s_inode_size set to zero causes
a floating point exception.  This is true for e2fsck, dumpe2fs,
e2image, etc.  Fix ext2fs_open2() so that it returns the error code
EXT2_ET_CORRUPT_SUPERBLOCK instead of crashing.

Thanks to Dean Bender for reporting this bug.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUse sscanf instead of atoi when parsing e2fsck options
Theodore Ts'o [Tue, 21 Aug 2007 02:55:33 +0000 (22:55 -0400)]
Use sscanf instead of atoi when parsing e2fsck options

atoi() does not check for errors so it shouldn't be used for human
input.  For example, if the user enters the command "e2fsck -C -n" and
forgets that -C requires an argument, the -n will be used as the
argument to -C, and not parsed as an option.  When using sscanf(),
this error case can be detected.

Addresses-Debian-Bug: #435381

Signed-off-by: Bernd Schubert <bs@q-leap.de>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate Dutch translation file from the Translation Project
Theodore Ts'o [Tue, 21 Aug 2007 02:14:36 +0000 (22:14 -0400)]
Update Dutch translation file from the Translation Project

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix typo and clarify the uuidgen man page
Theodore Ts'o [Tue, 21 Aug 2007 01:46:19 +0000 (21:46 -0400)]
Fix typo and clarify the uuidgen man page

Thanks to Matt Kraai for noticing the misplaced sentence inserted into
the description section.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate Swedish translation file from the Translation Project
Theodore Ts'o [Sat, 4 Aug 2007 02:25:25 +0000 (22:25 -0400)]
Update Swedish translation file from the Translation Project

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoMake sure $prefix/etc is created before installing mke2fs.conf
Theodore Ts'o [Sat, 4 Aug 2007 02:13:38 +0000 (22:13 -0400)]
Make sure $prefix/etc is created before installing mke2fs.conf

Fix up $(root_sysconfdir) handling misc/Makefile.in so that
make install and make uninstall works correctly when $prefix != /.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoe2fsck: Allow i_size to be rounded up to the size of a VM page
Theodore Ts'o [Sat, 4 Aug 2007 00:43:37 +0000 (20:43 -0400)]
e2fsck: Allow i_size to be rounded up to the size of a VM page

Allow files to be preallocated on-disk up to the next multiple of the
system's page size without complaining about extra blocks.

Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
Signed-off-by: Girish Shilamkar <girish@clusterfs.com>
Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdd "make check" to the RPM spec file
Theodore Ts'o [Sat, 4 Aug 2007 00:12:32 +0000 (20:12 -0400)]
Add "make check" to the RPM spec file

Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
17 years agoFix mke2fs tests to avoid needing any significant ^M (CR) characters
Theodore Ts'o [Sun, 22 Jul 2007 20:36:51 +0000 (16:36 -0400)]
Fix mke2fs tests to avoid needing any significant ^M (CR) characters

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix test in ext2fs_check_desc() for inode table within block group
Eric Sandeen [Fri, 20 Jul 2007 21:50:26 +0000 (16:50 -0500)]
Fix test in ext2fs_check_desc() for inode table within block group

The test in ext2fs_check_desc() is off by one; if the inode table
goes all the way to the last block of the block group, it will
falsely assert that it has extended past it.  The last block
of a range is start + len -1, not start + len.

You can create (valid) filesystems that will cause e2fsck to complain
via one of the following mkfs commands:

mkfs.ext3 -F -b 1024 /dev/sdb1 2046000000
mke2fs -j -F -b 4096 -m 0 -N 5217280 /mnt/test/fsfile2 327680
mkfs.ext2 -F -b 1024 -m 0 -g 256 -N 3744 fsfile 1024

Addresses-Red-Hat-Bugzilla: #214765

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoProperly calculate overhead in ext2fs_initialize()
Theodore Ts'o [Sun, 22 Jul 2007 19:07:13 +0000 (15:07 -0400)]
Properly calculate overhead in ext2fs_initialize()

For some odd geometries*, mkfs will try to allocate inode tables off
the end of the block group and fail, rather than warning that too
many inodes have been requested.

This is because when ext2fs_initialize calculates metadata overhead,
it is only adding in group descriptor blocks and the superblock
if the *last* bg contains them - but the first bg also has all of
the various metadata bits taking up space.

We need to calculate the overhead both for the first block group and
the last block groups separately, since the two different tests need
to know what the overheads are for those two cases, which may be
different.

*for example "mke2fs  -b 1024 -m 0 -g 256 -N 3745 fsfile 1024"

(Note, the test here is a little funky; the expected output is
actually a mkfs failure - but a proper failure instead of the
allocator catching the problem at the last minute)

Addresses-Red-Hat-Bugzilla: #241767

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdd Catalan translation from the Translation Project
Theodore Ts'o [Wed, 18 Jul 2007 16:28:43 +0000 (12:28 -0400)]
Add Catalan translation from the Translation Project

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix big-endian byte-swapping bug in ext2fs_swap_inode_full()
Eric Sandeen [Wed, 18 Jul 2007 01:40:25 +0000 (20:40 -0500)]
Fix big-endian byte-swapping bug in ext2fs_swap_inode_full()

We need to set t->i_file_acl before we test it in
ext2fs_inode_data_blocks()

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate ChangeLog, README, RELEASE-NOTES for 1.40.2 release v1.40.2
Theodore Ts'o [Sat, 14 Jul 2007 13:03:17 +0000 (09:03 -0400)]
Update ChangeLog, README, RELEASE-NOTES for 1.40.2 release

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate tune2fs man page to include more discussion of reserved blocks
Theodore Ts'o [Thu, 12 Jul 2007 03:20:17 +0000 (23:20 -0400)]
Update tune2fs man page to include more discussion of reserved blocks

Addresses-Launchpad-bug: #47817

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate Dutch and Vietnamese PO files from the Translation Project
Theodore Ts'o [Thu, 12 Jul 2007 00:22:52 +0000 (20:22 -0400)]
Update Dutch and Vietnamese PO files from the Translation Project

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix e2fsck segfault on very badly damaged filesystems
Theodore Ts'o [Wed, 11 Jul 2007 17:42:43 +0000 (13:42 -0400)]
Fix e2fsck segfault on very badly damaged filesystems

A recent change to e2fsck_add_dir_info() to use tdb files to check
filesystems with a very large number of filesystems had a typo which
caused us to resize the wrong data structure.  This would cause a
array overrun leading to malloc pointer corruptions.  Since we
normally can very accurately predict how big the the dirinfo array
needs to be, this bug only got triggered on very badly corrupted
filesystems.

Thanks to Andreas Dilger for submitting the test case which discovered
this problem, and to Kalpak Shah for writing a random testing script
which created the test case.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate Polish translation from the Translation Project
Theodore Ts'o [Tue, 10 Jul 2007 13:45:47 +0000 (09:45 -0400)]
Update Polish translation from the Translation Project

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoe2fsck: Fix salvage_directory when the last entry's rec_len is too big
Kalpak Shah [Mon, 9 Jul 2007 17:05:45 +0000 (13:05 -0400)]
e2fsck: Fix salvage_directory when the last entry's rec_len is too big

  Recently, one of our customers found this message in pass2 of e2fsck
  while doing some regression testing:

  "Entry '4, 0x695a, 0x81ff, 0x0040, 0x8320, 0xa192, 0x0021' in ??? (136554) has
  rec_len of 14200, should be 26908."

  Both the displayed rec_len and the "should be" value are bogus. The
  reason is that salvage_directory sets a offset beyond blocksize
  leading to bogus messages.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate Turkish translation from Translation Project
Theodore Ts'o [Mon, 9 Jul 2007 17:13:35 +0000 (13:13 -0400)]
Update Turkish translation from Translation Project

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix typo'ed version number in the release notes
Theodore Ts'o [Mon, 9 Jul 2007 03:24:19 +0000 (23:24 -0400)]
Fix typo'ed version number in the release notes

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix debian/control file to use ${binary:Version} instead of ${Source-Version} v1.40.1
Theodore Ts'o [Mon, 9 Jul 2007 01:36:59 +0000 (21:36 -0400)]
Fix debian/control file to use ${binary:Version} instead of ${Source-Version}

This is a Lintian-requested cleanup so that e2fsprogs will be
correctly built with binaryNMU's.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix up Lintain complaint about the "make distclean" ignoring errors
Theodore Ts'o [Mon, 9 Jul 2007 01:36:12 +0000 (21:36 -0400)]
Fix up Lintain complaint about the "make distclean" ignoring errors

This is a Debian-specific debian/rules change, just to clean up the
packaging script.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate ChangeLog, README, RELEASE-NOTES for 1.40.1 release
Theodore Ts'o [Mon, 9 Jul 2007 00:26:51 +0000 (20:26 -0400)]
Update ChangeLog, README, RELEASE-NOTES for 1.40.1 release

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdd debugging printf to blkid's probe routine when original fs type failed
Theodore Ts'o [Mon, 9 Jul 2007 00:17:31 +0000 (20:17 -0400)]
Add debugging printf to blkid's probe routine when original fs type failed

This particular bit of code has caused problems before, so make it
easier to debug problems caused by the probe verification looping
forever here.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoStop after the second '.' when parsing version numbers
Theodore Ts'o [Sun, 8 Jul 2007 16:37:13 +0000 (12:37 -0400)]
Stop after the second '.' when parsing version numbers

Now that we are moving to x.y.z version number scheme for maintenance
releases, we ned to change ext2fs_parse_version_string and
blkid_parse_version_string to ignore the second period so we don't
have maintenance releases with a substantially bigger verison number
than the initial x.y release.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate the *.po and *.gmo files after the e2fsprogs.pot update
Theodore Ts'o [Sun, 8 Jul 2007 16:09:40 +0000 (12:09 -0400)]
Update the *.po and *.gmo files after the e2fsprogs.pot update

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoRemove Changelog files since they're not used after the git migration
Theodore Ts'o [Sun, 8 Jul 2007 02:25:07 +0000 (22:25 -0400)]
Remove Changelog files since they're not used after the git migration

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate e2fsprogs.pot for translators
Theodore Ts'o [Sun, 8 Jul 2007 02:24:13 +0000 (22:24 -0400)]
Update e2fsprogs.pot for translators

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix bug which could cause libblkid to loop forever
Theodore Ts'o [Sat, 7 Jul 2007 22:32:26 +0000 (18:32 -0400)]
Fix bug which could cause libblkid to loop forever

When revalidating a partition where there is obsolete information in
/etc/blkid.tab, we end up freeing a the type tag without clearing
dev->bid_type, causing blkid_verify() to loop forever.

Addresses-Debian-Bug: #432052

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate French and Dutch translation files
Theodore Ts'o [Sat, 7 Jul 2007 21:44:53 +0000 (17:44 -0400)]
Update French and Dutch translation files

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate Vietnamese PO file from the Translation Project
Theodore Ts'o [Thu, 5 Jul 2007 03:30:36 +0000 (23:30 -0400)]
Update Vietnamese PO file from the Translation Project

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoImprove the config/parse_types.sh helper script
Theodore Ts'o [Wed, 4 Jul 2007 20:28:47 +0000 (16:28 -0400)]
Improve the config/parse_types.sh helper script

Fix a potential security problem if e2fsprogs is built as root (as
Gentoo does!).  In addition fix the script and how it is called from
the configure script so that it does the right thing when
cross-compiling.

Fixes-Gentoo-bug: #146903

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix bogus strip permission errors when building under Debian
Theodore Ts'o [Wed, 4 Jul 2007 18:51:18 +0000 (14:51 -0400)]
Fix bogus strip permission errors when building under Debian

When building the e2fsprogs dpkg's, the dh_strip command emits a large
number of error messages caused by the permissions not being right.  So
run dh_fixperms before running dh_strip.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoCompile the default mke2fs.conf into mke2fs program
Theodore Ts'o [Wed, 4 Jul 2007 18:10:46 +0000 (14:10 -0400)]
Compile the default mke2fs.conf into mke2fs program

People are getting surprised by mke2fs creating filesystems with
different defaults than earlier versions of mke2fs if mke2fs.conf is
not present.  Having gotten two complaints about ramdisks getting
created by with 4k blocksizes which then blow up when the ramdisk is
mounted with a "Magic mismatch, very weird" error message from the
kernel, let's fix this by making sure mke2fs has a built-in version of
mke2fs.conf file.  People can still override the built-in version of
mke2fs.conf by editing /etc/mke2fs.conf, but this maintains the
previous behavior.

Addresses-Sourceforge-Bug: #1745818

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdd new function: profile_set_default()
Theodore Ts'o [Wed, 4 Jul 2007 17:03:35 +0000 (13:03 -0400)]
Add new function: profile_set_default()

profile_set_default() sets the value of the pseudo file "<default>".
If the file "<default>" had previously been passed to profile_init(),
then def_string parameter will be parsed and used as the profile
information for the "<default>" file.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdd PROFILE_FILE_NO_RELOAD flag which is used by profile_update_file()
Theodore Ts'o [Wed, 4 Jul 2007 14:36:15 +0000 (10:36 -0400)]
Add PROFILE_FILE_NO_RELOAD flag which is used by profile_update_file()

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoe2fsck: Detect recursive loops in @-expansions
Theodore Ts'o [Mon, 2 Jul 2007 23:04:31 +0000 (19:04 -0400)]
e2fsck: Detect recursive loops in @-expansions

The Turkish translation has a bug in it where it has the translation
of "E@e '%Dn' in %p (%i)" to "E@E".  This causes @E to be expanded at
@E, recursively, forever, until the stack fills up e2fsck core dumps.

Fix it by stopping after a recursive depth of 10, which is far more
than we need.

Addresses-Sourceforge-Bug: 1646081

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoMake it clear in an error message that it is mk_cmds that is complaining
Theodore Ts'o [Sun, 1 Jul 2007 00:05:41 +0000 (20:05 -0400)]
Make it clear in an error message that it is mk_cmds that is complaining

Obviates gentoo patch: e2fsprogs-1.32-mk_cmds-cosmetic.patch

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoSet LC_ALL instead of LANG in the test suite config
Theodore Ts'o [Sat, 30 Jun 2007 22:41:31 +0000 (18:41 -0400)]
Set LC_ALL instead of LANG in the test suite config

LC_ALL is the "high priority" environment variable that overrides all
others, where as LANG is the lowest priorty environment variable.  If
LC_ALL is set, it doesn't matter whether LANG, LANGUAGE, LC_COLLATE,
LC_MESSAGES, and the all the rest are set.  This will assure that the
locale when running the test suites is the "C" locale.

Obviates Gentoo patch: e2fsprogs-1.38-tests-locale.patch

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdd .gitignore file
Theodore Ts'o [Sat, 30 Jun 2007 21:01:42 +0000 (17:01 -0400)]
Add .gitignore file

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdd .git directory to set of files to be ignored when building tarballs
Theodore Ts'o [Sat, 30 Jun 2007 20:47:38 +0000 (16:47 -0400)]
Add .git directory to set of files to be ignored when building tarballs

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate e2fsprogs 1.40 changelogs
Theodore Ts'o [Sat, 30 Jun 2007 03:09:16 +0000 (23:09 -0400)]
Update e2fsprogs 1.40 changelogs

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdded tag E2FSPROGS-1_40 for changeset 097cd140ac3b E2FSPROGS-1_40 v1.40
Theodore Ts'o [Sat, 30 Jun 2007 02:05:59 +0000 (22:05 -0400)]
Added tag E2FSPROGS-1_40 for changeset 097cd140ac3b

17 years agoRelease of e2fsprogs version 1.40
Theodore Ts'o [Sat, 30 Jun 2007 02:05:14 +0000 (22:05 -0400)]
Release of e2fsprogs version 1.40

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix byte swapping bug in get_next_inode_full()
Kalpak Shah [Sat, 30 Jun 2007 01:40:19 +0000 (21:40 -0400)]
Fix byte swapping bug in get_next_inode_full()

On big-endian systems, while swapping, ext2fs_swap_inode_full() swaps
only 128+extra_isize bytes and the EAs if they are present. Now if inode
N has EAs, (and this is the inode in the "scratch inode") then inode N+1
also carries seems to have them since the "scratch inode" was never
zeroed.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoUpdate Release Notes, Changelogs, version.h, etc. for 1.40 release
Theodore Ts'o [Sun, 24 Jun 2007 21:32:47 +0000 (17:32 -0400)]
Update Release Notes, Changelogs, version.h, etc. for 1.40 release

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix divide by zero error in blkid's NTFS probing logic
Theodore Ts'o [Sun, 24 Jun 2007 21:17:24 +0000 (17:17 -0400)]
Fix divide by zero error in blkid's NTFS probing logic

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix the info-dir line for the com_err.texinfo file
Theodore Ts'o [Sun, 24 Jun 2007 20:59:36 +0000 (16:59 -0400)]
Fix the info-dir line for the com_err.texinfo file

Fix the info-dir line so that the menu name does not contain a .info
prefix.  First of all, it's ugly, secondly, it causes the install-info
command to fail to remove the com_err info file from the
/usr/share/info/dir file when the comerr-dev package is removed and
purged.

Addresses Debian Bug: #401711

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoRemove RFC-4122 from e2fsprogs distribution
Theodore Ts'o [Sun, 24 Jun 2007 20:49:14 +0000 (16:49 -0400)]
Remove RFC-4122 from e2fsprogs distribution

Documentation about UUID's is available in enough places, and it's
awkward to deal with debian-legal's insanities.  So I'm caving in the
"more-lunatic-than-RMS" wing of Debian by removing RFC-4122 so we don't
have do the dfsg tarball.   Also remove the rule that only tried to
install RFC-4122 on Ubuntu, since Ubuntu seems to want to fetch
e2fsprogs exclusively from Debian.

Addresses Debian Bug: #407107

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoClarify the copyright licenses used by the various libraries in COPYING
Theodore Ts'o [Sat, 23 Jun 2007 05:04:53 +0000 (01:04 -0400)]
Clarify the copyright licenses used by the various libraries in COPYING

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix ext2fs_read_inode_full() so that the whole inode is byte-swapped
Kalpak Shah [Sat, 23 Jun 2007 02:32:43 +0000 (22:32 -0400)]
Fix ext2fs_read_inode_full() so that the whole inode is byte-swapped

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoFix byte-swapping issues for the i_extra_size field
Theodore Ts'o [Fri, 22 Jun 2007 23:53:21 +0000 (19:53 -0400)]
Fix byte-swapping issues for the i_extra_size field

Thanks to Andreas Dilger and Kalpak Shah for spotting this problem.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoe2fsck: added sanity check for xattr validation
Andreas Dilger [Fri, 22 Jun 2007 06:22:38 +0000 (02:22 -0400)]
e2fsck: added sanity check for xattr validation

Add an extra validity test in check_ext_attr().  If an attribute's
e_value_size is zero the current code does not allocate a region for it
and as a result the e_value_offs value is not verified.  However, if
e_value_offs is very large then the later call to
ext2fs_ext_attr_hash_entry() can dereference bad memory and crash
e2fsck.

Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
Signed-off-by: Jim Garlick <garlick@llnl.gov>
17 years agoAdd support for LUKS encrypted partitions
Karsten Hopp [Thu, 21 Jun 2007 17:43:33 +0000 (13:43 -0400)]
Add support for LUKS encrypted partitions

This patch adds support for cryptsetup-luks (http://luks.endorphin.org)
UUIDs to libblkid.  This is required p.e. to avoid hardcoding device
names for encrypted partitions.  Could you please take a look at it and
consider inclusion in the next e2fsprogs release ?

Signed-off-by: Karsten Hopp <karsten@redhat.com>
17 years agoFix gcc -Wall bug in e2fsck
Theodore Ts'o [Thu, 21 Jun 2007 17:31:13 +0000 (13:31 -0400)]
Fix gcc -Wall bug in e2fsck

Remove extraneous return after fatal_error().

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoNew regression test which contains a corrupt ind. block in the journal inode
Kalpak Shah [Thu, 21 Jun 2007 17:30:06 +0000 (13:30 -0400)]
New regression test which contains a corrupt ind. block in the journal inode

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
17 years agoe2fsck: Check the all of journal blocks for validity
Theodore Ts'o [Thu, 21 Jun 2007 15:59:06 +0000 (11:59 -0400)]
e2fsck: Check the all of journal blocks for validity

The original code only checked the direct blocks to make sure the
journal inode was sane.  Unfortunately, if some or all of the indirect
or doubly indirect blocks were corrupted, this would not be caught.
Thanks to Andreas Dilger and Kalpak Shah for noticing this problem.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoWrite the updated journal inode if s_jnl_blocks was successfully used
Kalpak Shah [Thu, 21 Jun 2007 15:59:06 +0000 (11:59 -0400)]
Write the updated journal inode if s_jnl_blocks was successfully used

If the journal inode was corrected from s_jnl_blocks, write the fixed
journal inode back to disk.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
17 years agoRecreate journal that had been removed previously due to corruption
Kalpak Shah [Thu, 21 Jun 2007 15:59:06 +0000 (11:59 -0400)]
Recreate journal that had been removed previously due to corruption

If the journal had been removed because it was corrupt, the
E2F_FLAG_JOURNAL_INODE flag will be set.  If this flag is set, then
recreate the filesystem after checking the filesystem.

Signed-off-by: Kalpak Shah <kalpak@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
17 years agoAdd default journal size function
Theodore Ts'o [Thu, 21 Jun 2007 15:59:06 +0000 (11:59 -0400)]
Add default journal size function

Factor out the code which sets the default journal size and move it
into libext2fs.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
17 years agoAdd more paranoid NTFS probing and fetch UUID and LABEL information
Theodore Ts'o [Tue, 19 Jun 2007 07:29:47 +0000 (03:29 -0400)]
Add more paranoid NTFS probing and fetch UUID and LABEL information

Hopefully this addresses false positives by the blkid library when
detecting NTFS partitions.

Addresses Launchpad Bug: #110138

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>