lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cbfd9852-bc89-1e83-f101-36fd29a0e70e@huawei.com>
Date:   Fri, 31 Dec 2021 15:42:40 +0800
From:   zhanchengbin <zhanchengbin1@...wei.com>
To:     Theodore Ts'o <tytso@....edu>
CC:     <linux-ext4@...r.kernel.org>, <liuzhiqiang26@...wei.com>,
        <linfeilong@...wei.com>, <wubo40@...wei.com>
Subject: [PATCH v2 4/6] e2fsprogs: call ext2fs_badblocks_list_free() to free,
 list in exception branch

In the exception branch,if we donot call ext2fs_badblocks_list_free() to
free bb_list|badblock_list, memory leak will occur.

Signed-off-by: zhanchengbin <zhanchengbin1@...wei.com>
---
  misc/dumpe2fs.c    | 1 +
  resize/resize2fs.c | 4 ++--
  2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/misc/dumpe2fs.c b/misc/dumpe2fs.c
index 3f4fc4ed..ef6d1cb8 100644
--- a/misc/dumpe2fs.c
+++ b/misc/dumpe2fs.c
@@ -338,6 +338,7 @@ static void list_bad_blocks(ext2_filsys fs, int dump)
  	if (retval) {
  		com_err("ext2fs_badblocks_list_iterate_begin", retval,
  			"%s", _("while printing bad block list"));
+		ext2fs_badblocks_list_free(bb_list);
  		return;
  	}
  	if (dump) {
diff --git a/resize/resize2fs.c b/resize/resize2fs.c
index b9783e8c..3b9b1ed1 100644
--- a/resize/resize2fs.c
+++ b/resize/resize2fs.c
@@ -1781,11 +1781,11 @@ static errcode_t block_mover(ext2_resize_t rfs)
  					fs->inode_blocks_per_group,
  					&rfs->itable_buf);
  		if (retval)
-			return retval;
+			goto errout;
  	}
  	retval = ext2fs_create_extent_table(&rfs->bmap, 0);
  	if (retval)
-		return retval;
+		goto errout;

  	/*
  	 * The first step is to figure out where all of the blocks
-- 
2.27.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ