nvmf: suppress scan-build warning

Logic error     Dereference of null pointer     ctrlr.c
nvmf_ctrlr_async_event_request  1522

Dereference of null pointer is not possible if sgroup obtained using
ctrlr obj. Adding corresponding asserts suppresses the warning.

Signed-off-by: Jacek Kalwas <jacek.kalwas@intel.com>
Change-Id: I78b32fadd5449ee9b533f65193c70e55cf9a8f1c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3251
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Jacek Kalwas 2020-07-10 03:59:08 +02:00 committed by Tomasz Zawadzki
parent 4d9ab1e9a1
commit ed4b7d12ec

View File

@ -1519,6 +1519,7 @@ nvmf_ctrlr_async_event_request(struct spdk_nvmf_request *req)
/* AER cmd is an exception */
sgroup = &req->qpair->group->sgroups[ctrlr->subsys->id];
assert(sgroup != NULL);
sgroup->io_outstanding--;
ctrlr->aer_req[ctrlr->nr_aer_reqs++] = req;
@ -2897,6 +2898,7 @@ _nvmf_request_complete(void *ctx)
qpair = req->qpair;
if (qpair->ctrlr) {
sgroup = &qpair->group->sgroups[qpair->ctrlr->subsys->id];
assert(sgroup != NULL);
is_aer = req->cmd->nvme_cmd.opc == SPDK_NVME_OPC_ASYNC_EVENT_REQUEST;
} else if (spdk_unlikely(nvmf_request_is_fabric_connect(req))) {
sgroup = nvmf_subsystem_pg_from_connect_cmd(req);
@ -3023,6 +3025,7 @@ spdk_nvmf_request_exec_fabrics(struct spdk_nvmf_request *req)
if (qpair->ctrlr) {
sgroup = &qpair->group->sgroups[qpair->ctrlr->subsys->id];
assert(sgroup != NULL);
} else {
sgroup = nvmf_subsystem_pg_from_connect_cmd(req);
}
@ -3038,6 +3041,7 @@ spdk_nvmf_request_exec(struct spdk_nvmf_request *req)
if (qpair->ctrlr) {
sgroup = &qpair->group->sgroups[qpair->ctrlr->subsys->id];
assert(sgroup != NULL);
} else if (spdk_unlikely(nvmf_request_is_fabric_connect(req))) {
sgroup = nvmf_subsystem_pg_from_connect_cmd(req);
}