[COVERITY] Avoid static buffer overruns in debugfs

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>
bitmap-optimize
Brian Behlendorf 2007-03-21 15:09:15 -04:00 committed by Theodore Ts'o
parent a4b66fb133
commit b772900b4b
4 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2007-03-21 Theodore Tso <tytso@mit.edu>
* dump.c (rdump_dirent), htree.c (htree_dump_leaf_node),
ls.c (list_dir_proc): Add an extra byte to EXT2_NAME_LEN
to avoid the possibility of an array overrun if the
filename is exactly EXT2_NAME_LEN in size.
2007-03-07 Theodore Tso <tytso@mit.edu>
* debugfs.c (do_lcd): Allow the lcd command when debugfs does not

View File

@ -292,7 +292,7 @@ static int rdump_dirent(struct ext2_dir_entry *dirent,
int blocksize EXT2FS_ATTR((unused)),
char *buf EXT2FS_ATTR((unused)), void *private)
{
char name[EXT2_NAME_LEN];
char name[EXT2_NAME_LEN + 1];
int thislen;
const char *dumproot = private;
struct ext2_inode inode;

View File

@ -35,7 +35,7 @@ static void htree_dump_leaf_node(ext2_filsys fs, ext2_ino_t ino,
struct ext2_dir_entry *dirent;
int thislen, col = 0;
unsigned int offset = 0;
char name[EXT2_NAME_LEN];
char name[EXT2_NAME_LEN + 1];
char tmp[EXT2_NAME_LEN + 16];
blk_t pblk;
ext2_dirhash_t hash;

View File

@ -52,7 +52,7 @@ static int list_dir_proc(ext2_ino_t dir EXT2FS_ATTR((unused)),
ext2_ino_t ino;
struct tm *tm_p;
time_t modtime;
char name[EXT2_NAME_LEN];
char name[EXT2_NAME_LEN + 1];
char tmp[EXT2_NAME_LEN + 16];
char datestr[80];
char lbr, rbr;