Make debugfs and tune2fs reference each other in the "SEE ALSO"
section.
Addresses-Sourceforge-Patches: #1399325
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Taking a cue from getfattr... if a string is "mostly"
printable characters, go ahead & print as a string,
and escape what's left over.
so we get:
Extended attributes stored in inode body:
selinux = "system_u:object_r:root_t:s0\000" (28)
instead of:
Extended attributes stored in inode body:
selinux = "73 79 73 74 65 6d 5f 75 3a 6f 62 6a 65 63 74 5f 72 3a 72 6f 6f 74 5f 74 3a 73 30 00 " (28)
(selinux includes the trailing null in "len" so it
never prints as a string today)
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Pass BLOCK_FLAG_READ_ONLY to ext2fs_block_iterate2() so that debugfs,
e2image, and tune2fs will work well with filesystems containing
extents.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This change allows debugfs to be reused as the base for e2fsprogs
internal test programs, by linking debugfs object files with
additional object file(s) that define additional commands. The test
program's object file(s) should define their own comand table, and
define the symbol extra_cmds to be a pointer to the ss_request_table.
In addition, the symbol debug_prog_name can be used to override the
name of the program printed in the version banner and in the ss
prompt.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Fix strtoblk() to allow a block number 0, and
common_block_args_process() so it prints an error message if a block
number that can't be parsed by strtoul().
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Originally submitted by Jason Pyeron:
While working with a compromized system (suckit root kit) hidden files
were viewable by debugfs but not any other utility. When spaces and
tabs were put into the directory names defugfs did not "show" them.
"ls -p" quotes the output so is can be parsed easily.
Addresses-Red-Hat-Bugzilla: #149480
Addresses-Sourceforge-Feature-Request: #1201667
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
When recovering a large number of deleted files, linking the undeleted
inodes to directories may require a directory to be expanded. This
could allocate a block that that had been used by one of the
yet-to-be-undeleted files. So the 'undel' command been enhanced to
allow the destination pathname to be optional. This will allow the
cautious user to undelete all of the inodes without specifying a
destination pathname, and then either use debugfs's link command to
add hard links, or use e2fsck to link all of the recovered files to
the lost+found directory.
Addresses-Sourceforge-Feature-Request: #967141
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
When fgets() function fails, contents of the buffer is undefined. That
is, fgets() return value needs to be checked, to avoid undefined behavior.
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Mke2fs is supposed to set the uid/gid ownership of the root directory when
a non-rooot user creates the filesystem. This wasn't working correctly
if the uid/gid was > 16 bits. In additional, debugfs wasn't displaying
large uid/gid's correctly. This patch fixes these two programs.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The l_i_version field is now defined from the old l_i_reserved1 field in
the ext2 inode. This field will be used to store high 32 bits of the
64-bit inode version number.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This command allows the user to set a value in the block group descriptors
for a particular block group.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Add _GNU_SOURCE define to make sure O_LARGEFILE is defined for
do_dump(), and use O_LARGEFILE when writing files using do_rdump().
Addresses Debian Bug: #412614
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This is a no-op since long_opt isn't currently being used; the -l option
to htree_dump is currently unwired to anything at the moment.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Coverity ID: 47: Used before assigned
Also fixed a bug in checking if the fopen failed.
Coverity ID: 30: Resource Leak
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Handle leaked cbuf due to early returns with a generic failure path.
Coverity ID: 24: Resource Leak
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Add an extra byte to EXT2_NAME_LEN in the static allocation for the
required trailing null. This allows filenames up to the maximum
length of EXT2_NAME_LEN withover an overrun.
Coverity ID: 11: Overrun Static
Coverity ID: 12: Overrun Static
Coverity ID: 13: Overrun Static
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The dump_unused command in debugfs segfaults if used without an open
filesystem:
sor:~ # debugfs
debugfs 1.39 (29-May-2006)
debugfs: dump_unused
Segmentation fault
Patch (from IBM) below.
Signed-off-by: Matthias Koenig <mkoenig@suse.de>
Change all of the e2fsprogs programs to use the newer add_error_table()
and remove_error_table() interfaces instead of the much older
initialize_*_error_table() function.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Add support for the new flag EXT2_FLAG_SOFTSUPP_FEATURES flag to
ext2fs_open() , which allows application to open filesystes with features
which are currently only partially supported by e2fsprogs.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
The e2fsprogs and kernel implementation of directory hash tree has a
bug which causes the implementation to be dependent on whether
characters are signed or unsigned. Platforms such as the PowerPC,
Arm, and S/390 have signed characters by default, which means that
hash directories on those systems are incompatible with hash
directories on other systems, such as the x86.
To fix this we add a new flags field to the superblock, and define two
new bits in that field to indicate whether or not the directory should
be signed or unsigned. If the bits are not set, e2fsck and fixed
kernels will set them to the signed/unsigned value of the currently
running platform, and then respect those bits when calculating the
directory hash. This allows compatibility with current filesystems,
as well as allowing cross-architectural compatibility.
Addresses Debian Bug: #389772
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
- EXT4_FEATURE_RO_COMPAT_HUGE_FILE (0x0008) - change i_blocks to be
in units of s_blocksize units instead of 512-byte sectors, use
l_i_frag and l_i_fsize as i_blocks_hi (could also be part of 64BIT).
E2fsck and debugfs changed to support i_blocks_hi instead of l_i_frag and
l_i_fsize.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
There were still some %d's lurking when we print blocks & inodes; also
many of the counters in the e2fsck_struct were signed, and probably
need to be unsigned to avoid overflows.
Signed-off-by: Eric Sandeen <esandeen@redhat.com>
This patch changes debugfs to print unsigned chars when "stat" on an inode
finds xattrs in the inode. Without this change, the values are printed
as signed chars, e.g. "ffffffec" instead of "ec".
Signed-off-by: Andreas Dilger <adilger@clusterfs.com>
This fixes some (but not all) of the compatibility bugs which prevented
e2fsprogs from being compiled on a Linux 2.0.35 system. There are still
some unprotected use of long long's, and apparently some type problems
with the uuid library, but these can be fixed up later.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Use EXT2_MAX_BLOCK_SIZE instead of a hardcoded blocksize of 32768, since
this will fail on a filesystem with a 64k blocksize. (Addresses SourceForge
bug #1424311)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>