Commit b6bb252e authored by Liu Xiaodong's avatar Liu Xiaodong Committed by Tomasz Zawadzki
Browse files

lib/nvmf: fix async_events index



When data_local.num_async_events >
SPDK_NVMF_MIGR_MAX_PENDING_AERS, data_local.async_events
was already indexed by 256, and it was out of bounds.

Signed-off-by: default avatarLiu Xiaodong <xiaodong.liu@intel.com>
Change-Id: I15cfdeb9bc165de0c73fbc9171b0ce6d8689c0aa
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14666


Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
parent 2371a070
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1948,11 +1948,12 @@ spdk_nvmf_ctrlr_save_migr_data(struct spdk_nvmf_ctrlr *ctrlr,
	data_local.num_aer_cids = ctrlr->nr_aer_reqs;

	STAILQ_FOREACH_SAFE(event, &ctrlr->async_events, link, event_tmp) {
		data_local.async_events[data_local.num_async_events++].raw = event->event.raw;
		if (data_local.num_async_events > SPDK_NVMF_MIGR_MAX_PENDING_AERS) {
		if (data_local.num_async_events + 1 > SPDK_NVMF_MIGR_MAX_PENDING_AERS) {
			SPDK_ERRLOG("ctrlr %p has too many pending AERs\n", ctrlr);
			break;
		}

		data_local.async_events[data_local.num_async_events++].raw = event->event.raw;
	}

	for (i = 0; i < ctrlr->nr_aer_reqs; i++) {