[Ocfs2-tools-devel] [PATCH 1/2 v2] o2image: 'blk' and 'ofs->ost' need to be freed when error happens in ocfs2_image_load_bitmap()
Joseph Qi
jiangqi903 at gmail.com
Tue Apr 3 04:26:18 PDT 2018
On 18/4/3 18:58, piaojun wrote:
> 1. 'blk' should be freed if ocfs2_image_alloc_bitmap() failed.
> 2. 'ofs->ost' should be freed when ocfs2_malloc_block() failed.
>
> Signed-off-by: Jun Piao <piaojun at huawei.com>
Acked-by: Joseph Qi <jiangqi903 at gmail.com>
> ---
> libocfs2/image.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/libocfs2/image.c b/libocfs2/image.c
> index 4ceab67..726d385 100644
> --- a/libocfs2/image.c
> +++ b/libocfs2/image.c
> @@ -166,7 +166,7 @@ errcode_t ocfs2_image_load_bitmap(ocfs2_filesys *ofs)
> int i, j, fd;
> ssize_t count;
> errcode_t ret;
> - char *blk;
> + char *blk = NULL;
>
> ret = ocfs2_malloc0(sizeof(struct ocfs2_image_state), &ofs->ost);
> if (ret)
> @@ -175,7 +175,7 @@ errcode_t ocfs2_image_load_bitmap(ocfs2_filesys *ofs)
> ost = ofs->ost;
> ret = ocfs2_malloc_block(ofs->fs_io, &blk);
> if (ret)
> - return ret;
> + goto out;
>
> /* read ocfs2 image header */
> ret = io_read_block(ofs->fs_io, 0, 1, blk);
> @@ -204,7 +204,7 @@ errcode_t ocfs2_image_load_bitmap(ocfs2_filesys *ofs)
>
> ret = ocfs2_image_alloc_bitmap(ofs);
> if (ret)
> - return ret;
> + goto out;
>
> /* load bitmap blocks ocfs2 image state */
> bits_set = 0;
> @@ -235,6 +235,10 @@ errcode_t ocfs2_image_load_bitmap(ocfs2_filesys *ofs)
> out:
> if (blk)
> ocfs2_free(&blk);
> + if (ret) {
> + ocfs2_image_free_bitmap(ofs);
> + ocfs2_free(&ofs->ost);
> + }
> return ret;
> }
>
More information about the Ocfs2-tools-devel
mailing list