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: Liu Xiaodong <xiaodong.liu@intel.com>
Change-Id: I15cfdeb9bc165de0c73fbc9171b0ce6d8689c0aa
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14666
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
This commit is contained in:
Liu Xiaodong 2022-09-26 02:15:34 -04:00 committed by Tomasz Zawadzki
parent 2371a070c8
commit b6bb252e23

View File

@ -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++) {