Commit 554aaffe authored by wanghonghui's avatar wanghonghui Committed by Jim Harris
Browse files

vhost fix potential memleak in vhost_backend_cleanup



dev->mem_table_fds init in vhost_user_set_mem_table
but dev->mem may init later in vhost_user_set_vring_addr,
so if qemu crash or lost conntion after vhost_user_set_mem_table
and before vhost_user_set_vring_addr,
it's hugepage memory is not being freed

Signed-off-by: default avatarHonghui Wang <wanghonghui@ucloud.cn>
Change-Id: I782c106078829ff6691ed3265a5d1718493de90c
Reviewed-on: https://review.gerrithub.io/c/440254


Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
parent 5977aad8
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -120,13 +120,13 @@ vhost_backend_cleanup(struct virtio_net *dev)
{
	uint32_t i;

	if (dev->mem) {
	if (dev->has_new_mem_table) {
			for (i = 0; i < dev->mem->nregions; i++) {
		for (i = 0; i < dev->mem_table.nregions; i++) {
			close(dev->mem_table_fds[i]);
		}
		dev->has_new_mem_table = 0;
	}
	if (dev->mem) {
		free_mem_region(dev);
		rte_free(dev->mem);
		dev->mem = NULL;