Looks Good, Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> On Sun, Apr 21, 2013 at 11:56:09PM -0400, Theodore Ts'o wrote: > The ext2fs_read_inode_full() function should not use fs->read_inode() > if the caller has requested more than the base 128 byte inode > structure and the inode size is greater than 128 bytes. Otherwise the > caller won't get all of the bytes that they were asking for, since > there's no way for the fs->read_inode override function can know what > the size of the buffer passed to ext2fs_read_inode_full(). > > Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx> > --- > lib/ext2fs/inode.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/lib/ext2fs/inode.c b/lib/ext2fs/inode.c > index 77fc447..fd72d4c 100644 > --- a/lib/ext2fs/inode.c > +++ b/lib/ext2fs/inode.c > @@ -533,7 +533,9 @@ errcode_t ext2fs_read_inode_full(ext2_filsys fs, ext2_ino_t ino, > EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS); > > /* Check to see if user has an override function */ > - if (fs->read_inode) { > + if (fs->read_inode && > + ((bufsize == sizeof(struct ext2_inode)) || > + (EXT2_INODE_SIZE(fs->super) == sizeof(struct ext2_inode)))) { > retval = (fs->read_inode)(fs, ino, inode); > if (retval != EXT2_ET_CALLBACK_NOTHANDLED) > return retval; > -- > 1.7.12.rc0.22.gcdd159b > > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Carlos -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html