ChangeLog, ext2_err.et.in, mkjournal.c:

mkjournal.c (ext2fs_create_journal_superblock): Add safety check;
  	return an error if there's an attempt to create a journal less than
  	1024 filesystem blocks.
  ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
  	EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
bitmap-optimize
Theodore Ts'o 2001-04-17 00:53:25 +00:00
parent ef059870af
commit 036039460f
3 changed files with 20 additions and 5 deletions

View File

@ -1,3 +1,12 @@
2001-04-16 Theodore Tso <tytso@valinux.com>
* mkjournal.c (ext2fs_create_journal_superblock): Add safety
check; return an error if there's an attempt to create a
journal less than 1024 filesystem blocks.
* ext2_err.et.in, mkjournal.c: Change EXT2_JOURNAL_NOT_BLOCK and
EXT2_NO_JOURNAL_SB to be EXT2_ET_*.
2001-02-20 Theodore Tso <tytso@valinux.com>
* bitops.h (ext2fs_swab16, ext2fs_swab32): Add i386 assembly

View File

@ -257,11 +257,14 @@ ec EXT2_ET_CANCEL_REQUESTED,
ec EXT2_ET_FILE_TOO_BIG,
"Ext2 file too big"
ec EXT2_JOURNAL_NOT_BLOCK,
ec EXT2_ET_JOURNAL_NOT_BLOCK,
"Supplied journal device not a block device"
ec EXT2_NO_JOURNAL_SB,
ec EXT2_ET_NO_JOURNAL_SB,
"Journal superblock not found"
ec EXT2_ET_JOURNAL_TOO_SMALL,
"Journal must be at least 1024 blocks"
end

View File

@ -49,7 +49,10 @@ errcode_t ext2fs_create_journal_superblock(ext2_filsys fs,
{
errcode_t retval;
journal_superblock_t *jsb;
if (size < 1024)
return EXT2_ET_JOURNAL_TOO_SMALL;
if ((retval = ext2fs_get_mem(fs->blocksize, (void **) &jsb)))
return retval;
@ -259,7 +262,7 @@ errcode_t ext2fs_add_journal_device(ext2_filsys fs, ext2_filsys journal_dev)
return errno;
if (!S_ISBLK(st.st_mode))
return EXT2_JOURNAL_NOT_BLOCK; /* Must be a block device */
return EXT2_ET_JOURNAL_NOT_BLOCK; /* Must be a block device */
/* Get the journal superblock */
if ((retval = io_channel_read_blk(journal_dev->io, 1, -1024, buf)))
@ -268,7 +271,7 @@ errcode_t ext2fs_add_journal_device(ext2_filsys fs, ext2_filsys journal_dev)
jsb = (journal_superblock_t *) buf;
if ((jsb->s_header.h_magic != (unsigned) ntohl(JFS_MAGIC_NUMBER)) ||
(jsb->s_header.h_blocktype != (unsigned) ntohl(JFS_SUPERBLOCK_V2)))
return EXT2_NO_JOURNAL_SB;
return EXT2_ET_NO_JOURNAL_SB;
if (ntohl(jsb->s_blocksize) != fs->blocksize)
return EXT2_ET_UNEXPECTED_BLOCK_SIZE;