iscsi/rpc: free partially decoded request

Partially decoded request need to be free even if
spdk_json_decode_object() fails.

Change-Id: I72127c484636547fcf1389af232dab855622c69a
Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com>
Reviewed-on: https://review.gerrithub.io/c/439372
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
This commit is contained in:
Pawel Wodkowski 2019-01-07 13:28:35 +01:00 committed by Darek Stojaczyk
parent 1ed1f968ae
commit b810dda24a

View File

@ -1071,15 +1071,14 @@ spdk_rpc_set_iscsi_target_node_auth(struct spdk_jsonrpc_request *request,
SPDK_ERRLOG("spdk_json_decode_object failed\n"); SPDK_ERRLOG("spdk_json_decode_object failed\n");
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
"Invalid parameters"); "Invalid parameters");
return; goto exit;
} }
target = spdk_iscsi_find_tgt_node(req.name); target = spdk_iscsi_find_tgt_node(req.name);
if (target == NULL) { if (target == NULL) {
spdk_jsonrpc_send_error_response_fmt(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, spdk_jsonrpc_send_error_response_fmt(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
"Could not find target %s", req.name); "Could not find target %s", req.name);
free_rpc_target_auth(&req); goto exit;
return;
} }
rc = spdk_iscsi_tgt_node_set_chap_params(target, req.disable_chap, req.require_chap, rc = spdk_iscsi_tgt_node_set_chap_params(target, req.disable_chap, req.require_chap,
@ -1087,8 +1086,7 @@ spdk_rpc_set_iscsi_target_node_auth(struct spdk_jsonrpc_request *request,
if (rc < 0) { if (rc < 0) {
spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
"Invalid combination of auth params"); "Invalid combination of auth params");
free_rpc_target_auth(&req); goto exit;
return;
} }
free_rpc_target_auth(&req); free_rpc_target_auth(&req);
@ -1100,6 +1098,10 @@ spdk_rpc_set_iscsi_target_node_auth(struct spdk_jsonrpc_request *request,
spdk_json_write_bool(w, true); spdk_json_write_bool(w, true);
spdk_jsonrpc_end_result(request, w); spdk_jsonrpc_end_result(request, w);
return;
exit:
free_rpc_target_auth(&req);
} }
SPDK_RPC_REGISTER("set_iscsi_target_node_auth", spdk_rpc_set_iscsi_target_node_auth, SPDK_RPC_REGISTER("set_iscsi_target_node_auth", spdk_rpc_set_iscsi_target_node_auth,
SPDK_RPC_RUNTIME) SPDK_RPC_RUNTIME)