From 267318d67104f82716310d2a29c1684ad9222c1c Mon Sep 17 00:00:00 2001 From: Dariusz Stojaczyk Date: Tue, 22 May 2018 04:04:28 +0200 Subject: [PATCH] bdev/virtio: fix memleak in construct_virtio_user_blk_bdev Fixes #305 Change-Id: I70843e63c74761e71cbe39369249cfa1123a4275 Signed-off-by: Dariusz Stojaczyk Reviewed-on: https://review.gerrithub.io/411959 Tested-by: SPDK Automated Test System Reviewed-by: Pawel Kaminski Reviewed-by: Daniel Verkamp Reviewed-by: Changpeng Liu --- lib/bdev/virtio/bdev_virtio_rpc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/bdev/virtio/bdev_virtio_rpc.c b/lib/bdev/virtio/bdev_virtio_rpc.c index 1a1681f0db..cf0544a5a9 100644 --- a/lib/bdev/virtio/bdev_virtio_rpc.c +++ b/lib/bdev/virtio/bdev_virtio_rpc.c @@ -331,11 +331,13 @@ spdk_rpc_create_virtio_user_blk_bdev(struct spdk_jsonrpc_request *request, if (spdk_json_decode_object(params, rpc_construct_virtio_user_blk_dev, SPDK_COUNTOF(rpc_construct_virtio_user_blk_dev), &req)) { + free_rpc_construct_virtio_blk_dev(&req); rc = -EINVAL; goto invalid; } bdev = bdev_virtio_user_blk_dev_create(req.name, req.path, req.vq_count, req.vq_size); + free_rpc_construct_virtio_blk_dev(&req); if (bdev == NULL) { rc = -EINVAL; goto invalid; @@ -355,7 +357,6 @@ spdk_rpc_create_virtio_user_blk_bdev(struct spdk_jsonrpc_request *request, invalid: spdk_jsonrpc_send_error_response(request, SPDK_JSONRPC_ERROR_INVALID_PARAMS, spdk_strerror(-rc)); - free_rpc_construct_virtio_blk_dev(&req); } SPDK_RPC_REGISTER("construct_virtio_user_blk_bdev", spdk_rpc_create_virtio_user_blk_bdev, SPDK_RPC_RUNTIME);