Commit 3c5c3d59 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Jim Harris
Browse files

bdevperf: Remove TAILQ_REMOVE which may result in potential memory leak



Only bdevperf_test_done() dequeues jobs from g_bdevperf.jobs list and
frees these. If _bdevperf_construct_job() dequeues job, it is leaked.
bdevperf does not have any special handling when g_run_rc is -ENOMEM
before bdevperf_construct_job(). To avoid future potential issues,
remove the TAILQ_REMOVE().

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I00ef484b99dd8b65f6c527e428d5bfb97df1c508
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/25458


Community-CI: Community CI Samsung <spdk.community.ci.samsung@gmail.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
parent f5304d66
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -1797,7 +1797,6 @@ _bdevperf_construct_job(void *ctx)
		SPDK_ERRLOG("Could not get io_channel for device %s, error=%d\n", spdk_bdev_get_name(job->bdev),
			    rc);
		spdk_bdev_close(job->bdev_desc);
		TAILQ_REMOVE(&g_bdevperf.jobs, job, link);
		g_run_rc = -ENOMEM;
		goto end;
	}