ext4_journal: fix memory leakage when revoking a block repeatedly
[lwext4.git] / src / ext4_fs.c
index db3a2ca745b7773fa7d2b930a6a01e6d96144492..8a0be5b7756794f06f7d9a3ffbf89de0e4e45c6b 100644 (file)
@@ -864,6 +864,8 @@ int ext4_fs_alloc_inode(struct ext4_fs *fs, struct ext4_inode_ref *inode_ref,
        /* Initialize i-node */
        struct ext4_inode *inode = inode_ref->inode;
 
+       memset(inode, 0, inode_size);
+
        uint32_t mode;
        if (is_dir) {
                /*
@@ -899,7 +901,7 @@ int ext4_fs_alloc_inode(struct ext4_fs *fs, struct ext4_inode_ref *inode_ref,
        if (inode_size > EXT4_GOOD_OLD_INODE_SIZE) {
                uint16_t off = offsetof(struct ext4_inode, extra_isize);
                uint16_t size = sizeof(struct ext4_inode) - off;
-               ext4_inode_set_extra_isize(inode, size);
+               ext4_inode_set_extra_isize(&fs->sb, inode, size);
        }
 
        /* Reset blocks array. For symbolic link inode, just