bdev/nvme: Fix descriptor leak in apply firmware RPC
Change-Id: I1a82e1c248d573f3a99e661bc7fef0871cfcc7f4 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/406993 Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
parent
96fcdf93e7
commit
a615ae7e26
@ -374,23 +374,25 @@ spdk_rpc_apply_nvme_firmware(struct spdk_jsonrpc_request *request,
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((rc = spdk_bdev_open(bdev2, true, NULL, NULL, &desc)) != 0) {
|
||||
snprintf(msg, sizeof(msg), "Device %s is in use.", firm_ctx->req->bdev_name);
|
||||
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, msg);
|
||||
apply_firmware_cleanup(firm_ctx);
|
||||
return;
|
||||
} else {
|
||||
if (!(opt = malloc(sizeof(struct open_descriptors)))) {
|
||||
snprintf(msg, sizeof(msg), "Memory allocation error.");
|
||||
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, msg);
|
||||
apply_firmware_cleanup(firm_ctx);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((rc = spdk_bdev_open(bdev2, true, NULL, NULL, &desc)) != 0) {
|
||||
snprintf(msg, sizeof(msg), "Device %s is in use.", firm_ctx->req->bdev_name);
|
||||
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INTERNAL_ERROR, msg);
|
||||
free(opt);
|
||||
apply_firmware_cleanup(firm_ctx);
|
||||
return;
|
||||
}
|
||||
|
||||
opt->desc = desc;
|
||||
opt->bdev = bdev;
|
||||
TAILQ_INSERT_TAIL(&firm_ctx->desc_head, opt, tqlst);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* find a descriptor associated with our bdev
|
||||
|
Loading…
Reference in New Issue
Block a user