From 43773a5a3a9a09a98a6846cfcce1e3bb92fda383 Mon Sep 17 00:00:00 2001 From: Alexey Marchuk Date: Mon, 21 Sep 2020 17:56:10 +0300 Subject: [PATCH] sock: Fix memory leak in RPC Memory allocated for impl_name is not freed in error cases. Signed-off-by: Alexey Marchuk Change-Id: If7cd62d948a05421b0bd5d1599f1275a0f3b4597 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4330 Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/sock/sock_rpc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/sock/sock_rpc.c b/lib/sock/sock_rpc.c index ae434d525..bd6431f9c 100644 --- a/lib/sock/sock_rpc.c +++ b/lib/sock/sock_rpc.c @@ -143,6 +143,7 @@ rpc_sock_impl_set_options(struct spdk_jsonrpc_request *request, len = sizeof(opts.sock_opts); rc = spdk_sock_impl_get_opts(opts.impl_name, &opts.sock_opts, &len); if (rc) { + free(opts.impl_name); spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, "Invalid parameters"); return; @@ -159,6 +160,7 @@ rpc_sock_impl_set_options(struct spdk_jsonrpc_request *request, rc = spdk_sock_impl_set_opts(opts.impl_name, &opts.sock_opts, sizeof(opts.sock_opts)); if (rc != 0) { + free(opts.impl_name); spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, "Invalid parameters"); return;