Whamcloud - gitweb
ChangeLog, ext2_err.et.in, mkjournal.c:
authorTheodore Ts'o <tytso@mit.edu>
Tue, 17 Apr 2001 00:53:25 +0000 (00:53 +0000)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 17 Apr 2001 00:53:25 +0000 (00:53 +0000)
  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_*.

lib/ext2fs/ChangeLog
lib/ext2fs/ext2_err.et.in
lib/ext2fs/mkjournal.c

index 3a46a1d..c2c0887 100644 (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
index 24bce49..842cf34 100644 (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
 
index 62a4575..212dd16 100644 (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;