Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5136a4fd authored by Wei Yongjun's avatar Wei Yongjun Committed by Jens Axboe
Browse files

lightnvm: fix possible memory leak in pblk_bb_discovery()



'blks' is malloced in pblk_bb_discovery() and should be freed
before leaving from the nvm_get_tgt_bb_tbl() error handling cases,
otherwise it will cause memory leak. Also skip assign blks to
rlun->bb_list when error.

Fixes: a4bd217b ("lightnvm: physical block device (pblk) target")
Signed-off-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
Reviewed-by: default avatarJavier González <javier@cnexlabs.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 543b334d
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -399,13 +399,15 @@ static int pblk_bb_discovery(struct nvm_tgt_dev *dev, struct pblk_lun *rlun)


	nr_blks = nvm_bb_tbl_fold(dev->parent, blks, nr_blks);
	nr_blks = nvm_bb_tbl_fold(dev->parent, blks, nr_blks);
	if (nr_blks < 0) {
	if (nr_blks < 0) {
		kfree(blks);
		ret = nr_blks;
		ret = nr_blks;
		goto out;
	}
	}


	rlun->bb_list = blks;
	rlun->bb_list = blks;


	return 0;
out:
out:
	kfree(blks);
	return ret;
	return ret;
}
}