From 1c54ba1c174bc0b334a32e864dc69a9cc07377fe Mon Sep 17 00:00:00 2001 From: Pawel Wodkowski Date: Wed, 9 Jan 2019 15:15:15 +0100 Subject: [PATCH] vhost_nvme/rpc: free partially decoded request Partially decoded request need to be free even if spdk_json_decode_object() fails. Change-Id: Icd00f835537dbaf197cc4f05930be8c543a534a6 Signed-off-by: Pawel Wodkowski Reviewed-on: https://review.gerrithub.io/c/439716 Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System Reviewed-by: Changpeng Liu Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker Reviewed-by: Darek Stojaczyk --- lib/vhost/vhost_rpc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/vhost/vhost_rpc.c b/lib/vhost/vhost_rpc.c index 0e546c365..8bcbb7343 100644 --- a/lib/vhost/vhost_rpc.c +++ b/lib/vhost/vhost_rpc.c @@ -686,7 +686,7 @@ static void spdk_rpc_construct_vhost_nvme_controller(struct spdk_jsonrpc_request *request, const struct spdk_json_val *params) { - struct rpc_vhost_nvme_ctrlr req = {0}; + struct rpc_vhost_nvme_ctrlr req = {}; struct spdk_json_write_ctx *w; int rc; @@ -699,7 +699,6 @@ spdk_rpc_construct_vhost_nvme_controller(struct spdk_jsonrpc_request *request, rc = spdk_vhost_nvme_dev_construct(req.ctrlr, req.cpumask, req.io_queues); if (rc < 0) { - free_rpc_vhost_nvme_ctrlr(&req); goto invalid; } @@ -715,6 +714,7 @@ spdk_rpc_construct_vhost_nvme_controller(struct spdk_jsonrpc_request *request, return; invalid: + free_rpc_vhost_nvme_ctrlr(&req); spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, spdk_strerror(-rc));