From: Ilya Dryomov Date: Tue, 27 Mar 2012 14:09:18 +0000 (+0300) Subject: Btrfs: fix memory leak in resolver code X-Git-Tag: firefly_0821_release~3680^2~2940^2~50^2~1 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5eb56d2520fe16f00756ccdf8eebc277398e0f44;p=firefly-linux-kernel-4.4.55.git Btrfs: fix memory leak in resolver code init_ipath() allocates btrfs_data_container which is never freed. Free it in free_ipath() and nuke the comment for init_data_container() - we can safely free it with kfree(). Signed-off-by: Ilya Dryomov --- diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index 0436c12da8c2..4c79547f4a0c 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -1342,12 +1342,6 @@ int paths_from_inode(u64 inum, struct inode_fs_paths *ipath) inode_to_path, ipath); } -/* - * allocates space to return multiple file system paths for an inode. - * total_bytes to allocate are passed, note that space usable for actual path - * information will be total_bytes - sizeof(struct inode_fs_paths). - * the returned pointer must be freed with free_ipath() in the end. - */ struct btrfs_data_container *init_data_container(u32 total_bytes) { struct btrfs_data_container *data; @@ -1403,5 +1397,6 @@ struct inode_fs_paths *init_ipath(s32 total_bytes, struct btrfs_root *fs_root, void free_ipath(struct inode_fs_paths *ipath) { + kfree(ipath->fspath); kfree(ipath); }