Hi Ted, It looks like the right place to check for ino=0 in ext2fs_read_inode_full() is before creating the inode cache, otherwise since we set icache[i].ino = 0 in create_icache(), it will match the loop below and thus we return a wrong value. Below patch fixes it. ========================================================================== Signed-off-by: "Manish Katiyar" <mkatiyar@xxxxxxxxx> --- lib/ext2fs/inode.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ext2fs/inode.c b/lib/ext2fs/inode.c index 8908423..a08cb40 100644 --- a/lib/ext2fs/inode.c +++ b/lib/ext2fs/inode.c @@ -536,6 +536,8 @@ errcode_t ext2fs_read_inode_full(ext2_filsys fs, ext2_ino_t ino, if (retval != EXT2_ET_CALLBACK_NOTHANDLED) return retval; } + if ((ino == 0) || (ino > fs->super->s_inodes_count)) + return EXT2_ET_BAD_INODE_NUM; /* Create inode cache if not present */ if (!fs->icache) { retval = create_icache(fs); @@ -552,8 +554,6 @@ errcode_t ext2fs_read_inode_full(ext2_filsys fs, ext2_ino_t ino, } } } - if ((ino == 0) || (ino > fs->super->s_inodes_count)) - return EXT2_ET_BAD_INODE_NUM; if (fs->flags & EXT2_FLAG_IMAGE_FILE) { inodes_per_block = fs->blocksize / EXT2_INODE_SIZE(fs->super); block_nr = fs->image_header->offset_inode / fs->blocksize; -- 1.5.4.3 ===================================================================== Thanks - Manish -- 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